LINUX.ORG.RU

FasCGI terminated due to uncaught signal 13

 , ,


0

1

Странная ситуация, есть приложение под 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

Но в большинстве случаев после этого сообщения никаких серьёзных последствий, сервер остаётся жить (как и подразумевается), поэтому непонятно, связано оно или нет.

★★★

Ну можно попробовать запустить под strace'ом, если ему уаказать ″-e 'trace=!all'″, то будет выводиться только информация про сигналы.

mky ★★★★★
()

такое ощущение, что кто-то провел обряд некромантии и призвал древнее зло. Апач, FastCGI. Как будто на дворе 2001-й

max_lapshin ★★★★★
()

Похоже, мастер-процесс не дожидается в отведенное время ответа от воркера. Наверняка, в конфиге апача или модуля есть соответствующая директива для таймаута.

level1 ★★
()
Ответ на: комментарий от level1

Но почему процесс при этом прибивается по SIGPIPE, если сигнал явно игнорируется?

E ★★★
() автор топика
Ответ на: комментарий от E

Не знаю как там внутри реализовано, может, разные процессы, может sigaction смотрит pid отправителя,но, похоже, это сигнал уровня логики апача, которым приложение управлять не может.

level1 ★★
()
Ответ на: комментарий от level1

Понятно, спасибо.

E ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.