Summary: | distcc: падение с double free | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Alexey Sheplyakov <asheplyakov> |
Component: | distcc | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | iv, lav, sin |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Alexey Sheplyakov
2021-07-09 21:29:16 MSK
(gdb) bt #0 dcc_gcc_rewrite_fqn (argv=0x487640) at src/compile.c:621 #1 0x000000000040605a in dcc_build_somewhere (argv=0x487640, sg_level=0, status=0x7fffffffda28) at src/compile.c:715 #2 0x000000000040676f in dcc_build_somewhere_timed (argv=0x487290, sg_level=0, status=0x7fffffffda28) at src/compile.c:1004 #3 0x0000000000406e96 in main (argc=16, argv=0x7fffffffdb48) at src/distcc.c:352 (gdb) print binname $50 = "/usr/bin/x86_64-alt-linux-gnu-gcc\000\377\377\377\177", '\000' <repeats 18 times>, "H]@" (gdb) print target_with_vendor $51 = 0x417949 "x86_64-alt-linux-gnu" distcc пытается переписать gcc в ${triplet}-gcc [1]. Для этого distcc использует GNU_HOST, который ему сообщил configure. А configure в наш, гм, странный триплет x86_64-alt-linux пытается привести к общепринятому ${hardware}-${platform_variant}-${kernel}-${abi} (hardware="x86_64", kernel="linux", abi="gnu"). Но компилятора с именем x86_64-alt-linux-gnu-gcc нет (а есть x86_64-alt-linux-gcc), поэтому получается облом. И вдобавок почему-то портится куча. [1] Чтобы "из коробки" работала сборка в гетерогенных кластерах, например клиент - arm, а сборочные узлы - x86 > И вдобавок почему-то портится куча. https://github.com/distcc/distcc/pull/425 Пользуясь случаем, хочу послать много лучей добра людям, которые придумали триплет `x86_64-alt-linux` (Ответ для Alexey Sheplyakov на комментарий #4) > Пользуясь случаем, хочу послать много лучей добра людям, которые придумали > триплет `x86_64-alt-linux` ... >Но компилятора с именем x86_64-alt-linux-gnu-gcc > нет (а есть x86_64-alt-linux-gcc), поэтому получается облом. Нет ли у нас баги с названием компилятора? (In reply to Vitaly Lipatov from comment #5) > (Ответ для Alexey Sheplyakov на комментарий #4) > > Пользуясь случаем, хочу послать много лучей добра людям, которые придумали > > триплет `x86_64-alt-linux` > ... > >Но компилятора с именем x86_64-alt-linux-gnu-gcc > > нет (а есть x86_64-alt-linux-gcc), поэтому получается облом. > Нет ли у нас баги с названием компилятора? Триплеты `${arch}-alt-linux` существуют очень давно. Насколько я понимаю, это калька с `${arch}-redhat-linux` (хотя могу ошибаться). Поменять триплеты *теперь* вряд ли возможно (не разломав сборку кучи пакетов). Придётся обучить distcc жить с теми триплетами, которые уже есть. Собственно, именно это и делает https://github.com/distcc/distcc/pull/427 (Ответ для Alexey Sheplyakov на комментарий #6) > (In reply to Vitaly Lipatov from comment #5) > > (Ответ для Alexey Sheplyakov на комментарий #4) > > > Пользуясь случаем, хочу послать много лучей добра людям, которые придумали > > > триплет `x86_64-alt-linux` > > ... > > >Но компилятора с именем x86_64-alt-linux-gnu-gcc > > > нет (а есть x86_64-alt-linux-gcc), поэтому получается облом. > > Нет ли у нас баги с названием компилятора? > > Триплеты `${arch}-alt-linux` существуют очень давно. Насколько я понимаю, > это калька с `${arch}-redhat-linux` (хотя могу ошибаться). Поменять триплеты > *теперь* вряд ли возможно (не разломав сборку кучи пакетов). Ну мне казалось, что в пакетах никак это не используется. Возможно, в каких-то редких странных пакетах. Но это это тема другой баги :) > Придётся > обучить distcc жить с теми триплетами, которые уже есть. Собственно, именно > это и делает https://github.com/distcc/distcc/pull/427 Спасибо за исправленную сборку! Исправлено в 3.4-alt2 |