worker process exited on signal 11 (core dumped)
Maxim Dounin
mdounin на mdounin.ru
Ср Фев 10 14:36:59 MSK 2010
Hello!
On Wed, Feb 10, 2010 at 02:07:09PM +0300, Vladimir Sopot wrote:
>
> On Feb 10, 2010, at 1:26 PM, Maxim Dounin wrote:
>
> >>>> memcached 1.4.4
> >>>> /usr/local/bin/memcached -u nobody -m 256 -c 8192 -d -s /tmp/memcached.sock
> >>>
> >>> Это интересно, к этому мы вернёмся позже.
> >>
> >> А что тут?
> >
> > Если сообщения "memcached sent invalid trailer" не пропали:
> >
> > 1. Попробовать выключить keepalive (достаточно в конфиге) и
> > посмотреть пропадут ли.
>
> Выключил. Посмотрим.
>
> > 2. Проверить наличие других сообщений о проблемах с memcached,
> > таких как "memcached sent invalid key in response", "memcached
> > sent invalid length in response", "memcached sent invalid
> > response". Если есть - привести их, и проверить для них пункт 1.
>
> За ~час, пока не пробовал без keepalive, прилетело 3 пары. За 10 минут после отключения keepalive пока пусто. Keepalive - враг?
>
> 2010/02/10 12:38:16 [error] 22972#0: *70274 memcached sent invalid trailer while sending to client
> 2010/02/10 12:38:16 [error] 22972#0: *70000 memcached sent invalid response: "D" while reading response header from upstream,
>
> 2010/02/10 13:06:05 [error] 25051#0: *1223490 memcached sent invalid trailer while sending to client,
> 2010/02/10 13:06:07 [error] 25051#0: *1223473 memcached sent invalid response: "D" while reading response header from upstream
>
> 2010/02/10 13:15:39 [error] 25057#0: *1629528 memcached sent invalid trailer while sending to client
> 2010/02/10 13:15:39 [error] 25057#0: *1629946 memcached sent invalid response: "D" while reading response header from upstream
Ok, кажется я понял проблему. Судя по всему memcached_pass не
дожидается полного прилёта trailer'а ("END") и ругается. А в
случае keepalive остатки trailer'а долетают в ответ на следующий
запрос.
По идее строка "invalid trailer" должна наблюдаться и без
keepalive (но скорее всего реже), а "invalid response" - только
если keepalive включён.
Буду смотреть подробнее чуть позже.
> Заметил особенность некасательно этих ^^^ запросов. "subrequests
> cycle while processing" возникают очень часто на #51 ssi include
> virtual. Фактически увидел НЕ на #51 всего несколько раз из
> сотни.
Потому что проверка на циклы срабатывает когда одновременно
обрабатывается более 50 подзапросов.
> >>>> location ~ /mmc/today/(\d+) {
> >>>> internal;
> >>
> >> Кстати, даже с internal ЭТО доступно из броузера.. Как же так?
> >
> > С internal происходит 404, а он у вас перехвачен в то же самое но
> > на php.
> >
> >>>> set $memcached_key "today_$1";
> >>>> memcached_pass tablew_mmc;
> >>>> error_page 404 502 /main/ssi/today_counter.php?ad=$1;
> >>>> }
>
> - error_page 404 502 /main/ssi/today_counter.php?ad=$1;
> + error_page 404 502 = /main/ssi/today_counter.php?ad=$1;
>
> location ^~ /main/ {
> include fastcgi_params;
> }
>
> location /main/ssi/ {
> internal;
> include fastcgi_params;
> }
>
> при запросе /main/ssi/today_counter.php имеем 404, при /mmc/today - нормальный ответ.
> Чую западню, но не понимаю где :(
Попадание внешнего запроса в location с флагом internal приводит к
возврату 404 ошибки. Случается внутренний редирект на страницу
ошибки. И возврат этой страницы, даже если она тоже в location
с флагом internal - т.к. запрос 404 ошибки уже внутренний.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru