Всем добрый день. Сервер на дебиан 5.0.5
Drupal 5.22
PHP 5.2.6-1+lenny
nginx/0.7.67 php в режиме fcgi
В логах начал замечать следующую вещь:
32515 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 95.79.163.106, server: xxx.com, request: "GET /blogs/1000413/1000207 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000"
То есть, пытаясь отдать эту ноду, один из child-ов fcgi валится и благополучно подыхает.
Другие ноды отдаёт без проблем.
Получил core dump, в нём:
Core was generated by `/usr/bin/php-cgi -q -b localhost:9000'.
Program terminated with signal 11, Segmentation fault.
[New process 15577]
#0 0xb7d697fc in ?? () from /lib/libpcre.so.3
(gdb) bt
#0 0xb7d697fc in ?? () from /lib/libpcre.so.3
Cannot access memory at address 0xbf0f8d20
(gdb)
Собственно, виновна pcre
Но что делать дальше, я не знаю.
Вначале попробовал покрутить параметры pcre.recursion_limit и pcre.bugtrack_limit в /etc/php5/cgi/php.ini - это оказалось без толку.
Поискав на drupal.org выявил такую проблему:
http://drupal.org/node/444228
Вроде бы очень похоже, хотя речь идёт о freebsd но симптомы те же.
Оптимизацию css отключил, кэш очистил - без толку.
Попробовал применить патч который предлагается в этой ветке - без толку.
В общем, в тупике и прошу помощи.
Комментарии
Опытным путём выяснилось, что виноват модуль quote
http://drupal.org/node/858898
Очевидно, в связи с этим багом PHP
http://bugs.php.net/bug.php?id=48501
Не используйте php-cgi, он сразу же ложится от хорошей нагрузки. Лучше всего на его замену подойдет php-fpm или spawn-fcgi из lighttpd.
Сам как-то настраивал nginx + php-fpm на линуксе и на FreeBSD, ничего сложного и очень удобно.
Так spawn-fcgi и есть.
Кстати, это теперь не часть lighttpd а отдельный пакет.
Попробуйте php-fpm. Удобная вещь. У меня проблем не возникало, правда не дебиан (Arch и FreeBSD).