Welcome! Log In Create A New Profile

Advanced

Re: корка

Maxim Dounin
January 13, 2012 06:08AM
Hello!

On Fri, Jan 13, 2012 at 02:44:05PM +0400, Domrachev Ivan wrote:

> >> вывалилась корка.
> >> дебаг логов нет, т.к. не знаю как воспроизвести.
> > А error_log'и есть?
> > grep -F '[alert]' /path/to/error/log
>
> в этот день не было error_log'ов.
>
> правда в конфиге:
> ....
> error_log error emerg;

Безумству храбрых поём мы песню...

> ....
> http {
> ...
> error_log error crit;
> ...
>
> >> #0 0x0000000000473c54 in ngx_http_file_cache_free (c=0x8014cb020, tf=0x0)
> >> at src/http/ngx_http_file_cache.c:930
> >> 930 ngx_queue_remove(&fcn->queue);
> >> [New Thread 8014041c0 (LWP 100157)]
> >> (gdb) bt
> >> #0 0x0000000000473c54 in ngx_http_file_cache_free (c=0x8014cb020, tf=0x0)
> >> at src/http/ngx_http_file_cache.c:930
> >> #1 0x000000000046892e in ngx_http_upstream_finalize_request (r=0x801530600, u=0x801514a60, rc=-1)
> >> at src/http/ngx_http_upstream.c:3014
> >> #2 0x000000000046be92 in ngx_http_upstream_process_header (r=0x801530600, u=0x801514a60)
> >> at src/http/ngx_http_upstream.c:2028
> >> #3 0x000000000046961a in ngx_http_upstream_handler (ev=0x8015d4ab0)
> >> at src/http/ngx_http_upstream.c:917
> >> #4 0x000000000044a4d5 in ngx_kqueue_process_events (cycle=0x801443050, timer=Variable "timer" is not available.
> >> )
> >> at src/event/modules/ngx_kqueue_module.c:683
>
> > [...]
>
> >> из чужих модулей только nginx_upload_module-2.2.0.
> >> опции компиляции надо?
> >> саму корку+бинарник надо?
> >> конфиги надо?
>
> > В "proxy_cache_path inactive=" стоит что?
>
> proxy_cache_path /cache_path levels= keys_zone=d:50m inactive=10s;
> ...
> proxy_cache_valid 200 301 302 304 10s;

В 1.0.x сейчас так жить не будет, надо ставить inactive больше (а
для контроля размера кеша использовать размер зоны и max_size).

Проблема в том, что по истечению inactive nginx пытается удалить
элемент кеша, и если он вдруг заблокирован каким-то рабочим
процессом - решает, что процесс, поставивший блокировку, умер, и
всё равно удаляет (логгируя alert про это). Поскольку элемент
кеша вполне может быть заблокирован более чем на 10 секунд - в
результате случается segmentation fault в процессе, который с этим
элементом работал.

В 1.1.11 логика изменена (больше в таких случаях элементы не
удаляются, просто пропускаются) и segmentation fault'ов быть не
должно:

*) Bugfix: a segmentation fault might occur in a worker process if small
time was used in the "inactive" parameter of the "proxy_cache_path"
directive.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

корка

Domrachev Ivan January 13, 2012 01:34AM

Re: корка

Maxim Dounin January 13, 2012 04:30AM

Re[2]: корка

Domrachev Ivan January 13, 2012 05:46AM

Re: корка

Maxim Dounin January 13, 2012 06:08AM

Re[2]: корка

Domrachev Ivan January 13, 2012 07:10AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 306
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready