Давайте попробуем. А то у меня тут отже трак намечается скоро... не хотелось бы идти по граблям :-)<br><br><div><span class="gmail_quote">On 9/14/06, <b class="gmail_sendername">Igor Sysoev</b> <<a href="mailto:is@rambler-co.ru">
is@rambler-co.ru</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On Thu, 14 Sep 2006, Sergey Serov wrote:<br><br>> On Saturday 09 September 2006 21:35, Sergey Serov wrote:
<br>>> On Saturday 09 September 2006 19:36, Igor Sysoev wrote:<br>>>> On Sat, 9 Sep 2006, Sergey Serov wrote:<br>>>>> Имею следующую проблему.<br>>>>> Если у nginx выставлен таймаут напр. 10 сек., то иногда если fastcgi
<br>>>>> сервер не успел уложиться в эти 10 сек. он зависает судя по strace в<br>>>>> read() того того файлового дескриптора, который судя по strace<br>>>>> используется для связи с nginx.
<br>>>>><br>>>>> Проблема эта мучала меня сильно, главным обзазом тем, что я долго не<br>>>>> мог понять природу зависаний. Но вроде сейчас все изучил, стало легче.<br>>>>><br>
>>>> По идее такого быть не должно, т.к. fastcgi должен получить broken pipe<br>>>>> и завершить работу.<br>>>>><br>>>>> Fastcgi сервер - скрипт Catalyst'a, который использует испытанный
<br>>>>> перловый модуль FCGI::ProcManager который живет без изменений аж 5 лет<br>>>>> уже. Он в свою очередь использует CGI::Fast, который изменяется чаще.<br>>>>><br>>>>> Кто тут виноват пока незнаю.
<br>>>>><br>>>>> Пока сделал pkill -9 -f perl-fcgi если не curl -sm 15 url.<br>>>>><br>>>>> Видимо, правильнее всего написать свой ProcManager.<br>>>>><br>>>>> У кого-нибудь были аналогичные проблемы и каковый были способы решения?
<br>>>><br>>>> Судя по тому, что используется strace - это Линукс.<br>>><br>>> Во FreeBSD я тоже strace использую, даже использовал когда еще на Линукс не<br>>> мигрировал, чем-то он мне больше нравился чем truss.
<br>>> Но в данном случае это Линукс.<br>>><br>>>> Какое ядро ?<br>>><br>>> 2.6.8-2-386<br>>><br>>>> У меня последнее время на ядрах 2.6.x есть обратные сообщения - когда<br>
>>> сервер закрывает соединение - а nginx об этом не знает.<br>>><br>>> В strace периодически вижу broken pipe на дескриптор коннекшина с nginx,<br>>> при этом соотв. fastcgi продолжает работу.<br>
>><br>>> Сперва думал что проблема из-за firewall'а который немного необычно<br>>> настраивается в отличии от ipfw. Но проблема не пропадала после его<br>>> отключения.<br>>><br>>> Можно с этим что-то поделать?
<br>><br>> Зависания иногда бывают фатальные.<br>> Зависает один процесс fastcgi в статусе R и съедает весь процессор.<br>> Кильнуть его нельзя, даже -9. PPID у него становится 1. Убить его вообще не<br>> возможно, можно только ребутнуть сервер.
<br>> Несколько часов поиска результатов не принесли.<br>> Задница полная :-(((<br><br>Судя по симптомам, дело не в nginx'е, и не в fastcgi, а в ядре.<br>Я могу сделать небольшой test-case того, что я видел во взаимодействии
<br>nginx/trac, но писать в lkml у меня нет никакого желания. Если есть<br>желающие, то могу сделать.<br><br><br>Игорь Сысоев<br><a href="http://sysoev.ru">http://sysoev.ru</a><br><br></blockquote></div><br><br clear="all">
<br>-- <br>/Scoundrel