Странная ситуация, есть приложение под Apache/mod_fcgi, которое периодически подвисает на тяжёлых запросах и апач его прибивает с ошибкой:
[:warn] [pid <...>:tid 1] FastCGI: server "<...>" (pid <...>) terminated due to uncaught signal '13' (B
roken pipe)
Но в самом приложении SIGPIPE полностью игнорируется через MSG_NOSIGNAL
и даже signal(SIGPIPE, SIG_IGN)
(других обработчиков точно нет). Если напрямую послать сигнал запущенному процессу, он игнорирует как положено.
Откуда может взяться этот левый сигнал?
Иногда ещё перед этим в логах проскакивает сообщение:
FastCGI: client stopped connection before send body completed
Но в большинстве случаев после этого сообщения никаких серьёзных последствий, сервер остаётся жить (как и подразумевается), поэтому непонятно, связано оно или нет.