On Tue, Sep 12, 2023 at 05:40:36PM +0700, Andrey Lu wrote: > 07.09.2023 15:09, Eugene Berdnikov пишет: [...] > > что называется, понесло... А раньше syslog-ng иногда подвисал из-за > > какой-то баги. При этом он переставал принимать пакеты, и подвисала > > практически вся система, ибо в юниксах код syslog(3) традиционно > > блокирующийся, и в линуксе GNU libc, там так же. Я даже собрал все > > материалы для багрепорта, но времени оформить его не хватило, пришлось [...] > Можно поподробнее про syslog-ng ? используем syslog-ng на большом количестве > серверов со стретча до булзая, в разных позах - никаких проблем не замечали
Нашёл файлики от июля 2019, созданные когда я готовил багрепорт. В них видно, что syslog-ng стопорится на операции записи send(32, "<39>Jul 20 07:49:29 syslog-ng: DIGEST-MD5 common mech free", 58, MSG_NOSIGNAL a lsof в этот замечательный момент показывает COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME syslog-ng 18274 root 32u unix 0x00000000c94137a7 0t0 5922798 type=DGRAM Т.е. syslog-ng пытается писать в сокет, клонированный accept()ом от /dev/log. Но с обратной стороны никто не собирается читать, там сидит чукча-писатель с syslog(3). А поскольку send() с MSG_NOSIGNAL, и, ясный пень, без таймера, то наступает капец. Ни по ssh зайти на эту машину, ни с консоли, поскольку и sshd, и getty->login вызывают синхронный syslog(3), на котором точно так же виснут. Бага проявлялась редко, но на физических хостах она отличалась особой неприятностью. И неуловимостью. А в контейнере поймалась на ура. Возможно, это уже починили, всё-таки 4 года прошло. -- Eugene Berdnikov