nginx 0.7.62/0.8.20 ssl and "worker process ... exited on signal 11"

Maxim Dounin mdounin at mdounin.ru
Fri Oct 23 11:25:57 MSD 2009


Hello!

On Fri, Oct 23, 2009 at 10:33:26AM +0400, Andrey Y. Ostanovsky wrote:

> Maxim Dounin пишет:
> > Пересобрать с дебагом, получить корку и debug log.  Дальше будем 
> > смотреть.
> >
> > Хотя я бы для начала проверил проявляется ли проблема в 0.8.*, 
> > очень может быть что это уже что-то исправленное но ещё не 
> > попавшее в stable.  Если проблема ssl-specific, то возможно это 
> > вот это (0.8.7):
> >
> >     *) Bugfix: the $ssl_client_cert variable usage corrupted memory; the 
> >        bug had appeared in 0.7.7.
> >        Thanks to Sergey Zhuravlev.
> >
> > Если верить CHANGES - в stable этого исправления пока нет.
> >   
> И десяти минут не проработало. :(
> 
> Oct 23 10:27:15 noc kernel: pid 74051 (nginx-0.8.20), uid 80: exited on
> signal 11 (core dumped)

Было бы замечательно ещё и debug log.  Ну и корку либо ещё одну, 
либо из этой правильно backtrace вынуть.

Хотелось бы также знать что за openssl используется.

Да, если вдруг используются сторонние патчи/модули - крайне 
желательно откатить и воспроизвести проблему без них.

> # gdb /usr/local/sbin/nginx /var/tmp/80.nginx.core

Так nginx или nginx-0.8.20?

> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, 
> and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for 
> details.
> This GDB was configured as "i386-marcel-freebsd"...
> Core was generated by `nginx'.
> Program terminated with signal 11, Segmentation fault.
> #0  0x283de8a3 in ?? ()
> (gdb) bt
> #0  0x283de8a3 in ?? ()
> #1  0x00000000 in ?? ()
> #2  0x000007dc in ?? ()
> #3  0x08076de1 in ngx_ssl_handshake (c=0x28597180) at
> src/event/ngx_event_openssl.c:585
> #4  0x0808e674 in ngx_http_header_filter (r=0x2851e400)
>     at src/http/ngx_http_header_filter_module.c:432
> #5  0x080a4156 in ngx_http_parse_time (value=0x2851e400 "\220╧-(ю&Q(К",
> len=0)
>     at src/http/ngx_http_parse_time.c:195

Либо это совсем плохой, негодный стек, либо gdb запускали не с тем 
бинарником.

Я склоняюсь ко второму варианту - адреса переменных вполне похожи 
на правду, между тем как имена функций и файлы/строки - абсолютно 
левые.

Maxim Dounin

> #6  0x080ab645 in ngx_http_file_cache_expire (cache=0x2851e400)
>     at src/http/ngx_http_file_cache.c:1043
> #7  0x080ad06b in ngx_http_gzip_header_filter (r=0x2851e400)
>     at src/http/modules/ngx_http_gzip_filter_module.c:288
> #8  0x080adbf3 in ngx_http_gzip_filter_get_buf (r=0x2851e400, ctx=0x0)
>     at src/http/modules/ngx_http_gzip_filter_module.c:718
> #9  0x080b00b5 in ngx_http_charset_recode_from_utf8 (pool=0x2851e400,
> buf=0x0, ctx=0x285973c0)
>     at src/http/modules/ngx_http_charset_filter_module.c:858
> #10 0x08050c0e in ngx_chain_update_chains (free=0x28679238, busy=0x0,
> out=0xbfbfeb38,
>     tag=0x80593b7) at src/core/ngx_buf.c:205
> #11 0x0808ec95 in ngx_http_header_filter (r=0x2851e400)
>     at src/http/ngx_http_header_filter_module.c:557
> #12 0x080a5401 in ngx_http_index_test_dir (r=0x2851e400, clcf=0x0,
>     path=0x7d9 <Address 0x7d9 out of bounds>, last=0x5 <Address 0x5 out
> of bounds>)
>     at src/http/modules/ngx_http_index_module.c:313
> #13 0x0807e775 in ngx_http_core_try_files_phase (r=0x2851e400, ph=0x0)
>     at src/http/ngx_http_core_module.c:1264
> #14 0x08088ff1 in ngx_http_process_request (r=0x2851e400) at
> src/http/ngx_http_request.c:1569
> #15 0x08088488 in ngx_http_alloc_large_header_buffer (r=0x2863d0f0,
> request_line=677630220)
>     at src/http/ngx_http_request.c:1247
> #16 0x08068443 in ngx_events_block (cf=0x2855a028, cmd=0x6, conf=0x1) at
> src/event/ngx_event.c:899
> #17 0x08066766 in ngx_open_and_stat_file (name=0x2855a028 '╔' <repeats
> 200 times>..., of=0x1,
>     log=0xbfbfec04) at src/core/ngx_open_file_cache.c:528
> #18 0x08071894 in ngx_signal_worker_processes (cycle=0x2855a028, signo=0)
>     at src/os/unix/ngx_process_cycle.c:477
> #19 0x0806efda in ngx_write_channel (s=676700200, ch=0x8071730, size=0,
> log=0x80d0c05)
>     at src/os/unix/ngx_channel.c:74
> #20 0x08071348 in ngx_single_process_cycle (cycle=0x2855a028)
>     at src/os/unix/ngx_process_cycle.c:294
> #21 0x080703eb in ngx_process_get_status () at src/os/unix/ngx_process.c:537
> #22 0x0804bc49 in main (argc=5, argv=0xbfbfee98) at src/core/nginx.c:337
> (gdb)
> 
> 
> -- 
> Best regards, Andrey Y. Ostanovsky
> jabberID: aost at jabber.spb.ru
> St. Petersburg, Russia 
> 
> 





More information about the nginx-ru mailing list