Bug 40010

Summary: rebuild with gcc10 exposes buggy code (with garbage in strings)
Product: Sisyphus Reporter: Ivan Zakharyaschev <imz>
Component: synapticAssignee: Ivan Zakharyaschev <imz>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: amakeenk, amakeenk, darktemplar, imz, mike, rider, snejok
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
log with gcc10
none
log with gcc9 (20201209)
none
sources.list (20201209)
none
screenshot with the bug (synaptic_after; thanks amakeenk)
none
screenshot without the bug (synaptic_before; thanks amakeenk) none

Description Ivan Zakharyaschev 2021-04-28 18:26:12 MSK
Created attachment 9335 [details]
log with gcc10

synaptic-0.58-alt23

Это наблюдается после пересборки и нынешнего пакета synaptic-0.58-alt23 в текущем
окружении Sisyphus (обнаружено amakeenk@ при тестировании нового релиза пакета):

> Обнаружен регресс в пакете synaptic:
> После обновления некорректно стал отображаться размер пакетов (см. скриншоты).
> Воспроизводится только на x86_64 и armh. На i586 размер отображается корректно.
> Шаги воспроизведения:
> 1. Запустить synaptic
> 2. Выбрать Параметры->Параметры->Столбцы и шрифты, поставить галочку на поле Размер загружаемых файлов, Применить.
> 3. Пролистать список пакетов до строк, где атрибут Размер не пустой.

Какое изменение вызывает проявление этой ошибки?

Появляется впервые при сборке в среде архива Sisyphus 20201210 в
отличие от 20201209; их разница -- gcc10 (например, по данным
/beehive/logs/Sisyphus/x86_64/archive/2020/12{09,10}/ufb-1.zst):

8c8
< synaptic gcc-c++ 9-alt2
---
> synaptic gcc-c++ 10-alt1
10c10
< synaptic gcc9-c++ 9.3.1-alt2
---
> synaptic gcc10-c++ 10.2.1-alt2
108c108
< synaptic libstdc++9-devel 9.3.1-alt2
---
> synaptic libstdc++10-devel 10.2.1-alt2

Скорее всего это ненадёжный код в synaptic, одинаково плохой независимо
от версии gcc.

Зафиксирую здесь ещё, что при компиляции gcc10 warnings те же
самые по сути (помимо пунктуации). Логи от сборки с --nprocs=1
приложены, и sources.list.

Так что ищу это плохое место в исходном коде synaptic.
Comment 1 Ivan Zakharyaschev 2021-04-28 19:10:30 MSK
Created attachment 9336 [details]
log with gcc9 (20201209)
Comment 2 Ivan Zakharyaschev 2021-04-28 19:11:38 MSK
Created attachment 9337 [details]
sources.list (20201209)
Comment 3 Ivan Zakharyaschev 2021-04-28 19:12:51 MSK
Created attachment 9338 [details]
screenshot with the bug (synaptic_after; thanks amakeenk)
Comment 4 Ivan Zakharyaschev 2021-04-28 19:13:40 MSK
Created attachment 9339 [details]
screenshot without the bug (synaptic_before; thanks amakeenk)
Comment 5 Ivan Zakharyaschev 2021-04-29 08:39:51 MSK
Нашёл эти места (с типичным use-after-free). Скоро отправлю исправление.
Comment 6 Ivan Zakharyaschev 2021-05-14 15:51:57 MSK
Релиз с фиксом этой ошибки собирается в заданиях 42898 (Sisyphus) и 42899 (p9).
Comment 7 Ivan Zakharyaschev 2021-05-14 15:53:50 MSK
(In reply to Ivan Zakharyaschev from comment #6)
> Релиз с фиксом этой ошибки собирается в заданиях 42898 (Sisyphus) и 42899
> (p9).

А, это не те номера -- это я для e2k отправил проверить сборку.

Задания 271478 и 271479
Comment 8 Repository Robot 2021-05-14 21:28:01 MSK
synaptic-0.58-alt24 -> sisyphus:

 Tue May 11 2021 Ivan Zakharyaschev <imz@altlinux> 0.58-alt24
 - Fixed a use-after-free bug (appearing as garbage being shown in the size
   columns, notably after recompilation with gcc10). (ALT#40010)
 - Unset Synaptic::supported-text in the packaged configuration file. (That's
   the straight way to get "Package is supported" translated in the UI rather
   than the previous hack in the code.)
 - Included the sr@latin translation in the package.
   (It got excluded before because of an outdated sr@Latn name.)