yum...@gmail.com (Yuriy M. Kaminskiy) writes: > Eugene Berdnikov <b...@protva.ru> writes: > >> On Sat, Sep 12, 2015 at 06:09:07PM +0300, Eugene Berdnikov wrote: >>> On Sat, Sep 12, 2015 at 04:37:59PM +0300, Yuriy M. Kaminskiy wrote: >>> > Я только что нарвался на неприятный баг: на попытке перезапустить (не >>> > полностью стартовавший) сервис, systemd помер с SIGFPE на целочисленном >>> > делении на 0 (точнее, намерено завис в обработчике сигнала). При этом >>> > systemd не реагирует ни на что [systemctl, kill -INT 1, и т.д.], не >>> >>> Ядро линукса не блокирует передачу таких сигналов процессу с pid=1. >> >> Оговорился. Наоборот, блокирует. :) > > Каких "таких"? SIGFPE? И что бы оно должно было делать по делению на > ноль? По факту, systemd этот сигнал получает, и реагирует зависанием > (зовёт freeze(), внутри которого он закрывает все дескрипторы и > крутится в for(;;) pause();, см. TFS). > > [...] kernel: [X.X] traps: systemd[1] trap > divide error ip:f772106f sp:ffabdaf4 error:0 in systemd[f765d000+130000] > [...] systemd[1]: Caught <FPE>, dumped core as pid 4661. > [...] systemd[1]: Freezing execution. > > (корку я посмотрел, backtrace идентичен #774012). > > Ожидаемая реакция systemd на SIGINT/SIGTERM и так далее прописана в > man systemd (SIGTERM эквивалентен systemctl daemon-reexec, SIGINT > эквивалентен systemctl reboot); в состоянии "намеренного зависания > внутри обработчика SIGFPE" systemd ни на какие сигналы не реагирует.
... в любом случае, вопрос не в деталях этого бага (всё необходимое есть в #774012, баг признан, локализован и исправлен в upstream), а в том что: Есть баг с Severity: important, в критичном компоненте системы, который: 1) был отправлен (не мной) *до* релиза jessie; 2) отмечен как исправленный (и даже ушёл в архив) в трекере; 3) *не был* тем не менее исправлен в jessie, исправленная версия отсутствует в jessie-backports, и так далее; 4) судя по всему, срабатывает случайно, никаких путей обхода или очевидных "а вы не делайте так" нет. WTF?