Re: nginx застрял в sched_yield()
Maxim Dounin
mdounin на mdounin.ru
Чт Мар 31 16:30:26 MSD 2011
Hello!
On Thu, Mar 31, 2011 at 04:44:41AM +0400, Denis F. Latypoff wrote:
> Здрасьте, наконец-то отловил его, уже такое бывало, но
> на продакшене, по этому не получалось бэктрейс глянуть, надо было
> быстро все починить. Проявляется при HUP'е:
>
> (gdb) bt
> #0 0x0000003744abac77 in sched_yield () from /lib64/libc.so.6
> #1 0x0000000000413667 in ngx_spinlock (lock=0x2b1216ba3000, value=14637,
> spin=1024) at src/core/ngx_spinlock.c:39
fr 1
p ngx_ncpu
p *lock
Последнее напечатает pid процесса, про него тоже желательно узнать
подробности.
Можно ещё там же походить и убедиться, что оно на самом деле
крутится в ngx_spinlock(), а не висит в sched_yield().
> #2 0x00000000004452ad in ngx_http_file_cache_expire (
> data=<value optimized out>) at src/http/ngx_http_file_cache.c:1076
> #3 ngx_http_file_cache_manager (data=<value optimized out>)
> at src/http/ngx_http_file_cache.c:1196
> #4 0x000000000041fdba in ngx_cache_manager_process_handler (ev=0x7ffff2bee870)
> at src/os/unix/ngx_process_cycle.c:1346
> #5 0x000000000041a299 in ngx_event_expire_timers ()
> at src/event/ngx_event_timer.c:149
> #6 0x000000000041a1c5 in ngx_process_events_and_timers (cycle=0x75f4fb0)
> at src/event/ngx_event.c:261
> #7 0x0000000000420a88 in ngx_cache_manager_process_cycle (cycle=0x75f4fb0,
> data=<value optimized out>) at src/os/unix/ngx_process_cycle.c:1328
> #8 0x000000000041e5c7 in ngx_spawn_process (cycle=0x75f4fb0,
> proc=0x420919 <ngx_cache_manager_process_cycle>, data=0x67d400,
> name=0x46803f "cache manager process", respawn=-4)
> at src/os/unix/ngx_process.c:196
> #9 0x000000000041f21a in ngx_start_cache_manager_processes (cycle=0x75f4fb0,
> respawn=1) at src/os/unix/ngx_process_cycle.c:398
> #10 0x00000000004207ee in ngx_master_process_cycle (cycle=0x75f4fb0)
> at src/os/unix/ngx_process_cycle.c:251
> #11 0x0000000000406b8a in main (argc=12, argv=0x75c9ae9)
> at src/core/nginx.c:405
>
> Процесс пока не убиваю, сервер тестовый,
> если надо структурки посмотреть, то пожалуйста.
>
> [root at gostats ~]# nginx -V
> nginx: nginx version: nginx/0.9.6
> nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
Подозрительно знакомая версия gcc...
Ещё пожалуйста
disass ngx_spinlock
disass ngx_atomic_cmp_set
> nginx: TLS SNI support disabled
> nginx: configure arguments: --prefix=/opt/nginx --user=nobody --group=nobody --with-http_image_filter_module --with-http_stub_status_module --with-http_ssl_module --with-http_xslt_module --with-http_geoip_module
>
> [root at gostats ~]# uname -a
> Linux gostats.org 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
Maxim Dounin
Подробная информация о списке рассылки nginx-ru