Проблемы...
Alexey N. Kovyrin
alexey at kovyrin.net
Sun Feb 19 23:27:37 MSK 2006
Добрый день,
Вот столкнулся с непонятной мне проблемой... У меня есть некоторое
количество самописных модулей к нгинксу, которые обеспечивают
необходимую функциональность для моего фрихостинга... вроде бы все
хорошо, но где-то есть утечка... как найти ее - я придумать так и не
смог - все перепроверил, но ничего не нашел... Может у кого-нибудь есть
мысли, как можно найти место, где "течет"? Насколько я понимаю, проблема
у меня в коде "баннеровставлялки", но там вроде бы негде было ошибиться...
Некое подобие proof of concept этого модуля лежит в аттаче (вдруг
поможет?)...
Еще одна проблема (не уверен, что не кореллирует с предыдущей): примерно
раз в сутки рабочие процессы нгинкса падают в кору, запускаются новые,
но нгинкс перестает отвечать на запросы... то есть accept происходит, но
потом соединение просто висит до таймаута со стороны клиента...
Вот bt из коры:
#0 0x0804d0c6 in ngx_chain_update_chains (free=0xad32508,
busy=0xad3250c, out=0xbffff9c8, tag=0x807f680) at src/core/ngx_buf.c:192
192 for (cl = *busy; cl->next; cl = cl->next) { /* void */ }
(gdb) bt
#0 0x0804d0c6 in ngx_chain_update_chains (free=0xad32508,
busy=0xad3250c, out=0xbffff9c8, tag=0x807f680) at src/core/ngx_buf.c:192
#1 0x0804d4f5 in ngx_output_chain (ctx=0xad32500, in=0x0) at
src/core/ngx_output_chain.c:219
#2 0x08065bcf in ngx_http_copy_filter (r=0xabdd308, in=0xad32508) at
src/http/ngx_http_copy_filter_module.c:109
#3 0x0806eaee in ngx_http_range_body_filter (r=0xabdd308, in=0x0) at
src/http/modules/ngx_http_range_filter_module.c:587
#4 0x0805eb23 in ngx_http_output_filter (r=0xabdd308, in=0xad32508) at
src/http/ngx_http_core_module.c:972
#5 0x08063168 in ngx_http_writer (r=0xabdd308) at
src/http/ngx_http_request.c:1638
#6 0x08062ccc in ngx_http_request_handler (ev=0x1120) at
src/http/ngx_http_request.c:1391
#7 0x080558cc in ngx_event_process_posted (cycle=0x808d028,
posted=0x80843b8) at src/event/ngx_event_posted.c:39
#8 0x0805484c in ngx_process_events_and_timers (cycle=0x808d028) at
src/event/ngx_event.c:272
#9 0x0805a74d in ngx_worker_process_cycle (cycle=0x808d028, data=0x0)
at src/os/unix/ngx_process_cycle.c:728
#10 0x08058c8f in ngx_spawn_process (cycle=0x808d028, proc=0x805a6d7
<ngx_worker_process_cycle>, data=0x0, name=0x80785e7 "worker process",
respawn=-3)
at src/os/unix/ngx_process.c:187
#11 0x0805a0ed in ngx_start_worker_processes (cycle=0x808d028, n=4,
type=-3) at src/os/unix/ngx_process_cycle.c:327
#12 0x08059d97 in ngx_master_process_cycle (cycle=0x808d028) at
src/os/unix/ngx_process_cycle.c:219
#13 0x0804a5af in main (argc=134750176, argv=0xad32508) at
src/core/nginx.c:302
(gdb)
Откуда начинать траблшутинг в этом случае я вообще не представляю... Не
знаю, с чем связана такая проблема, но в логах тишина и ничего кроме
следующего:
2006/02/19 00:27:38 [alert] 28963#0: worker process 12333 exited on
signal 11 (core dumped)
2006/02/19 00:27:38 [alert] 28963#0: worker process 12335 exited on
signal 11 (core dumped)
2006/02/19 00:27:39 [alert] 28963#0: worker process 12337 exited on
signal 11 (core dumped)
2006/02/19 00:27:39 [alert] 28963#0: worker process 12334 exited on
signal 11 (core dumped)
2006/02/19 00:30:04 [info] 12516#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:30:04 [info] 12517#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:30:04 [info] 12518#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:30:04 [info] 12519#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12516#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12517#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12518#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12694#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12695#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12696#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:40:04 [info] 12697#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:50:04 [info] 18907#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:50:04 [info] 18908#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:50:04 [info] 18909#0: sigtimedwait() failed (4:
Interrupted system call)
2006/02/19 00:50:04 [info] 18910#0: sigtimedwait() failed (4:
Interrupted system call)
Такая периодичность сообщений связана с тем, что каждые 10 минут
делается killall -HUP nginx (кстати, насколько это
правильно/неправильно? может стоит дергать только тот процесс, pid
которого есть в nginx.pid)?
Заранее прошу извинения за сумбурность изложения, просто приехал с
отдыха и получил втык от начальства за даунтайм... и писал на волне
переживаний...
--
/Scoundrel [http://kovyrin.info]
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ngx_http_banner_filter_module.c
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20060219/cdb5ef8f/attachment.c>
More information about the nginx-ru
mailing list