Re: Корка выпала
Maxim Dounin
mdounin на mdounin.ru
Сб Апр 21 23:06:42 UTC 2012
Hello!
On Sun, Apr 22, 2012 at 12:17:36AM +0400, Михаил Монашёв wrote:
> Здравствуйте.
>
> в error-логе:
> 2012/04/21 19:52:31 [alert] 27366#0: worker process 27402 exited on signal 11 (core dumped)
>
> FreeBSD 8.2-RELEASE-p3
>
> /usr/local/sbin/nginx -V
> nginx version: nginx/1.1.18
> configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-debug --with-file-aio --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_image_filter_module --with-http_stub_status_module --with-pcre
[...]
> #0 0x0000000000497612 in ngx_http_proxy_parse_chunked (r=0x801627900, buf=0x8019d73c8) at src/http/modules/ngx_http_proxy_module.c:1639
> 1639 src/http/modules/ngx_http_proxy_module.c: No such file or directory.
> in src/http/modules/ngx_http_proxy_module.c
[...]
> Конфиг вышлю, но не в лист. Сейчас nginx до сих пор падает, проработав
> до того пару недель. Перезапускать его или пока оставить в падучем
> состоянии?
В конфиге, я так понимаю, image filter во всю используется, и
ошибки от него error_page'ем куда-то обрабатываются? Если есть
ещё какие-то нюансы - шли.
Патч наверное какой-то такой:
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -1497,6 +1497,10 @@ ngx_http_proxy_input_filter_init(void *d
u = r->upstream;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
"http proxy filter init s:%d h:%d c:%d l:%O",
u->headers_in.status_n, ctx->head, u->headers_in.chunked,
@@ -1636,6 +1640,11 @@ ngx_http_proxy_parse_chunked(ngx_http_re
} state;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
state = ctx->state;
if (state == sw_chunk_data && ctx->size == 0) {
@@ -1883,6 +1892,10 @@ ngx_http_proxy_chunked_filter(ngx_event_
r = p->input_ctx;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
b = NULL;
prev = &buf->shadow;
@@ -2064,6 +2077,11 @@ ngx_http_proxy_non_buffered_chunked_filt
ngx_http_proxy_ctx_t *ctx;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
u = r->upstream;
buf = &u->buffer;
Maxim Dounin
Подробная информация о списке рассылки nginx-ru