Re: nginx застрял в sched_yield()

Denis F. Latypoff latypoff на yandex.ru
Чт Мар 31 19:21:20 MSD 2011


31.03.2011, 19:09, "Igor Sysoev" <igor at sysoev.ru>:
> On Thu, Mar 31, 2011 at 06:57:57PM +0400, Denis F. Latypoff wrote:
>
>>  31.03.2011, 18:53, "Igor Sysoev" <igor at sysoev.ru>;:
>>>  On Thu, Mar 31, 2011 at 06:50:33PM +0400, Denis F. Latypoff wrote:
>>>>   31.03.2011, 18:46, "Igor Sysoev" <igor at sysoev.ru>;;:
>>>>>   On Thu, Mar 31, 2011 at 06:00:02PM +0400, Denis F. Latypoff wrote:
>>>>>>    31.03.2011, 16:30, "Maxim Dounin" <mdounin at mdounin.ru>;;;:
>>>>>>>    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 процесса, про него тоже желательно узнать
>>>>>>>    подробности.
>>>>>>    (gdb) fr 1
>>>>>>    #1  0x0000000000413667 in ngx_spinlock (lock=0x2b1216ba3000, value=14637,
>>>>>>        spin=1024) at src/core/ngx_spinlock.c:39
>>>>>>    39              ngx_sched_yield();
>>>>>>    (gdb) p ngx_ncpu
>>>>>>    $3 = 1
>>>>>>    (gdb) fr 1
>>>>>>    #1  0x0000000000413667 in ngx_spinlock (lock=0x2b1216ba3000, value=14637,
>>>>>>        spin=1024) at src/core/ngx_spinlock.c:39
>>>>>>    39              ngx_sched_yield();
>>>>>>    (gdb) p ngx_ncpu
>>>>>>    $4 = 1
>>>>>>    (gdb) p *lock
>>>>>>    $5 = 15792
>>>>>   А что показывает
>>>>>   ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
>>>>   [root at gostats ~]# ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
>>>>     PID  PPID %CPU    VSZ WCHAN  COMMAND
>>>>   14635 23330  0.0 166264 -      nginx: worker process
>>>>   14636 23330  0.0 166264 -      nginx: worker process
>>>>   14637 23330 12.7 153904 -      nginx: cache manager process
>>>>   23330     1  0.0 153904 rt_sig nginx: master process /opt/nginx/sbin/nginx
>>>>   31627  9617  0.0  61180 pipe_w egrep (nginx|PID)
>>>  То есть, процесса 15792 нет ?
>>>  А в error_log про него есть что-нибудь ?
>>  Что-то как-то совсем забыл про error.log:
>>
>>  2011/03/27 11:06:44 [notice] 23330#0: using inherited sockets from "12;"
>>  2011/03/30 17:25:28 [alert] 14637#0: ignore long locked inactive cache entry ecf21fdcb63a82963655f68c517dd767, count:1
>>  2011/03/30 17:25:28 [alert] 14637#0: ignore long locked inactive cache entry 218ad6b41b1522a6e4c679ec5bb00c02, count:1
>>  2011/03/30 17:25:28 [alert] 23330#0: worker process 15792 exited on signal 11
>>
>>  все, больше ничего нет
>
> В общем, проблема в 15792, нужно сохранять корки.

Ок, буду пытаться воспроизвести.

>
> --
> Igor Sysoev
> http://sysoev.ru/en/
>

-- 
br, Denis F. Latypoff.



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