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