Re: [bug] coredump при нефункционирующем resolver'е

Maxim Dounin mdounin на mdounin.ru
Вт Окт 19 16:26:22 MSD 2010


Hello!

On Tue, Oct 19, 2010 at 02:55:00PM +0400, Alexandre Snarskii wrote:

> 
> Hi!
> 
> nginx/0.8.52, соответствующая часть конфига: 
> 
>         location ~* http://(.*):([0-9]+) { 
>                 internal;
>                 resolver 127.0.0.1;
>                 proxy_pass http://$1:$2/$request_uri$is_args$args;
>                 proxy_redirect .....;
>         }
> 
> на этот location идет переход из fastcgi_pass (весь вывод которого
> X-Accel-Redirect: http://<censored.a.bit>:80). Если named на localhost'е
> работает - все прекрасно, но если его опустить (/etc/rc.d/named stop) - 
> получаем корку: 
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x0804d710 in ngx_log_error_core (level=4, log=0x28511354, err=61, 
>     fmt=0x80dcb7b "recv() failed") at src/core/ngx_log.c:93
> 93          if (log->file->fd == NGX_INVALID_FILE) {
> (gdb) p log
> $1 = (ngx_log_t *) 0x28511354
> (gdb) p log->file
> $2 = (ngx_open_file_t *) 0x0

[...]

Угу, это уже обсуждалось:

http://nginx.org/pipermail/nginx/2010-September/022392.html

Анализ проблемы там правильный, но патч негодный.  Workaround - 
явно определить error_log на глобальном уровне.

Как будет время - я посмотрю как пофиксить правильно.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru