worker process exited on signal 11 (core dumped)
Maxim Dounin
mdounin на mdounin.ru
Ср Фев 10 05:45:26 MSK 2010
Hello!
On Tue, Feb 09, 2010 at 05:29:51PM +0300, Vladimir Sopot wrote:
> То ли сначала не заметил, то ли это после configure ...... --add-module=../ngx_http_upstream_keepalive-2ce9d8a1ca93/
>
> 2010/02/09 16:20:47 [error] 28108#0: *30149916 memcached sent invalid trailer while sending to client, client: 75.76.60.101, server: tablew.ru, request: "GET /site/user.php?user=YYYYY HTTP/1.1", upstream: "memcached://unix:/tmp/memcached.sock:", host: "tablew.ru", referrer:
> "http://tablew.ru"
>
> 2010/02/09 16:20:48 [alert] 11625#0: worker process 28108 exited on signal 11 (core dumped)
>
> memcached 1.4.4
> /usr/local/bin/memcached -u nobody -m 256 -c 8192 -d -s /tmp/memcached.sock
Это интересно, к этому мы вернёмся позже.
> в nginx.conf:
>
> upstream tablew_mmc {
> server unix:/tmp/memcached.sock;
> keepalive 30;
> }
> ....
>
> location = /site/user.php {
> set $memcached_key "${query_string}_${cookie_shar}${cookie_show}${cookie_uid}${cookie_admin}";
> memcached_pass tablew_mmc;
> ssi on;
>
> error_page 404 502 /site/user_real.php?$query_string;
> }
> ....
> в этом ^^^ еще несколько <!--# ssi include virtual="/mmc/today/....." -->
> конкретно эта корка на запросе с 13
А /site/user_real.php как обрабатывается? В корке был именно он.
Кстати, вероятно имелось ввиду всё-таки
error_page 404 502 = /site/user_real.php?$query_string;
Note '='.
>
> location ~ /mmc/today/(\d+) {
> internal;
> set $memcached_key "today_$1";
> memcached_pass tablew_mmc;
> error_page 404 502 /main/ssi/today_counter.php?ad=$1;
> }
>
> >> # ../sbin/nginx -V
> >> nginx version: nginx/0.8.33
> >> built by gcc 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
> >> configure arguments: --with-http_stub_status_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_autoindex_module --without-http_browser_module --without-http_charset_module --without-http_map_module --without-http_userid_module --with-file-aio
>
> добавил --add-module=../ngx_http_upstream_keepalive-2ce9d8a1ca93/
> жить стало интереснее, работает быстрее, падает, как и раньше, произвольно. core уже от этой сборки
>
> > Если aio используется - попробовать отключить.
>
> не помогло
>
> > Также было бы замечательно пересобраться с --with-debug и
> > попробовать получить debug log.
>
> сервер сильно боевой - лог получается космический. debug_connection не помогает - я не могу нарваться на эту ошибку :(
Если сервер лог писать успевает - то дождаться проблемы вращая по
необходимости, после чего отключить и неспеша выдрать из него
нужное. Не имея debug log'а - очень тяжело разбираться с
подобными вещами.
Единственная ситуация в которой я смог воспроизвести нечто
похожее - это бесконечная рекурсия SSI запросов. Защита от неё
есть, но поломана начиная с 0.7.25. Прилагающийся патч возвращает
защиту на место.
Если это таки была рекурсия - в логах должно появится что-то вроде
... [error] ... subrequests cycle while processing ...
Ну и корки должны пропасть.
Maxim Dounin
-------------- next part --------------
# HG changeset patch
# User Maxim Dounin <mdounin at mdounin.ru>
# Date 1265769044 -10800
# Node ID 09972a4975970f7c3510177b8a287283d3a53c58
# Parent 66adffc35a4699210362cfa10a2c279732861f41
Core: protect from subrequest loops.
Protection was broken in 0.7.25.
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2147,7 +2147,6 @@ ngx_http_subrequest(ngx_http_request_t *
sr->uri_changes = NGX_HTTP_MAX_URI_CHANGES + 1;
- r->main->subrequests++;
r->main->count++;
*psr = sr;
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1938,6 +1938,7 @@ ngx_http_finalize_request(ngx_http_reque
if (r == c->data) {
r->main->count--;
+ r->main->subrequests++;
if (!r->logged) {
Подробная информация о списке рассылки nginx-ru