# rpm -q nginx nginx-0.3.45-alt1 # uname -r 2.6.16-ovz-smp-alt4 # strace -p 18770 Process 18770 attached - interrupt to quit epoll_wait(8, {{EPOLLIN, {u32=2863411216, u64=46912496218128}}}, 512, 4294967295) = 1 accept(5, {sa_family=AF_INET, sin_port=htons(38170), sin_addr=inet_addr("192.168.3.41")}, [4968587243695374352]) = 6 brk(0x60b000) = 0x60b000 brk(0x62c000) = 0x62c000 brk(0x64d000) = 0x64d000 brk(0x66e000) = 0x66e000 brk(0x68f000) = 0x68f000 brk(0x6b0000) = 0x6b0000 brk(0x6d1000) = 0x6d1000 brk(0x6f2000) = 0x6f2000 brk(0x713000) = 0x713000 brk(0x734000) = 0x734000 brk(0x755000) = 0x755000 brk(0x776000) = 0x776000 brk(0x797000) = 0x797000 brk(0x7b8000) = 0x7b8000 brk(0x7d9000) = 0x7d9000 brk(0x7fa000) = 0x7fa000 brk(0x81b000) = 0x81b000 brk(0x83c000) = 0x83c000 brk(0x85d000) = 0x85d000 brk(0x87e000) = 0x87e000 brk(0x89f000) = 0x89f000 brk(0x8c0000) = 0x8c0000 brk(0x8e1000) = 0x8e1000 brk(0x902000) = 0x902000 brk(0x923000) = 0x923000 brk(0x944000) = 0x944000 brk(0x965000) = 0x965000 brk(0x986000) = 0x986000 brk(0x9a7000) = 0x9a7000 brk(0x9c8000) = 0x9c8000 brk(0x9e9000) = 0x9e9000 brk(0xa0a000) = 0xa0a000 brk(0xa2b000) = 0xa2b000 brk(0xa4c000) = 0xa4c000 brk(0xa6d000) = 0xa6d000 brk(0xa8e000) = 0xa8e000 brk(0xaaf000) = 0xaaf000 brk(0xad0000) = 0xad0000 brk(0xaf1000) = 0xaf1000 brk(0xb12000) = 0xb12000 brk(0xb33000) = 0xb33000 brk(0xb54000) = 0xb54000 brk(0xb75000) = 0xb75000 brk(0xb96000) = 0xb96000 brk(0xbb7000) = 0xbb7000 brk(0xbd8000) = 0xbd8000 brk(0xbf9000) = 0xbf9000 brk(0xc1a000) = 0xc1a000 brk(0xc3b000) = 0xc3b000 brk(0xc5c000) = 0xc5c000 brk(0xc7d000) = 0xc7d000 brk(0xc9e000) = 0xc9e000 brk(0xcbf000) = 0xcbf000 brk(0xce0000) = 0xce0000 brk(0xd01000) = 0xd01000 brk(0xd22000) = 0xd22000 brk(0xd43000) = 0xd43000 brk(0xd64000) = 0xd64000 brk(0xd85000) = 0xd85000 brk(0xda6000) = 0xda6000 brk(0xdc7000) = 0xdc7000 brk(0xde8000) = 0xde8000 brk(0xe09000) = 0xe09000 brk(0xe2a000) = 0xe2a000 brk(0xe4b000) = 0xe4b000 brk(0xe6c000) = 0xe6c000 brk(0xe8d000) = 0xe8d000 brk(0xeae000) = 0xeae000 brk(0xecf000) = 0xecf000 brk(0xef0000) = 0xef0000 brk(0xf11000) = 0xf11000 brk(0xf32000) = 0xf32000 brk(0xf53000) = 0xf53000 brk(0xf74000) = 0xf74000 brk(0xf95000) = 0xf95000 brk(0xfb6000) = 0xfb6000 brk(0xfd7000) = 0xfd7000 brk(0xff8000) = 0xff8000 brk(0x1019000) = 0x1019000 brk(0x103a000) = 0x103a000 brk(0x105b000) = 0x105b000 brk(0x107c000) = 0x107c000 brk(0x109d000) = 0x109d000 brk(0x10be000) = 0x10be000 brk(0x10df000) = 0x10df000 brk(0x1100000) = 0x1100000 brk(0x1121000) = 0x1121000 brk(0x1142000) = 0x1142000 brk(0x1163000) = 0x1163000 brk(0x1184000) = 0x1184000 brk(0x11a5000) = 0x11a5000 brk(0x11c6000) = 0x11c6000 --- SIGSEGV (Segmentation fault) @ 0 (0) --- Process 18770 detached
Что с новыми версиями?
(In reply to comment #1) > Что с новыми версиями? 0.4.9-alt1 на 2.6.16-ovz-smp-alt12 падает так же.
В сизиф ушел новый nginx, прошу проверить с ним.
Свежепоставленный на x86_64 nginx-0.5.14-alt1, к которому попробовал обратиться lynx/links2: 2007/04/05 16:29:31 [alert] 32109#0: worker process 32110 exited on signal 11 2007/04/05 16:29:32 [alert] 32109#0: worker process 32112 exited on signal 11 2007/04/05 16:29:32 [alert] 32109#0: worker process 32113 exited on signal 11 2007/04/05 16:29:32 [alert] 32109#0: worker process 32692 exited on signal 11
Можешь его собрать с --enable debug и посмотреть корку?
(In reply to comment #4) > Свежепоставленный на x86_64 nginx-0.5.14-alt1, к которому попробовал обратиться > lynx/links2: > > 2007/04/05 16:29:31 [alert] 32109#0: worker process 32110 exited on signal 11 > 2007/04/05 16:29:32 [alert] 32109#0: worker process 32112 exited on signal 11 > 2007/04/05 16:29:32 [alert] 32109#0: worker process 32113 exited on signal 11 > 2007/04/05 16:29:32 [alert] 32109#0: worker process 32692 exited on signal 11 такое бывает, когда ресурсов в контейнере не хватает.
Думаю, надо баг закрыть, т.к. редкое приложение ведет себя прилично при нехватке памяти (если, конечно, vvk@ не запускает nginx на std-smp ядре).
Мне думается что если мы поймаем точное место в коде где падает, Игорь Сысоев будет рад сделать так, чтобы nginx корректно вел себя в таких ситуациях. Редкое приложение имеет такую высокую эффективность использование system-specific фич и одновременно портируемость. И меня несколько напрягает то что у нас тут 3 репортера с одной и той же багой.
(In reply to comment #7) > Думаю, надо баг закрыть, т.к. редкое приложение ведет себя прилично при нехватке > памяти (если, конечно, vvk@ не запускает nginx на std-smp ядре). ресурсов достаточно: # vzctl exec 137 "grep -v ' 0$' /proc/user_beancounters" Version: 2.5 uid resource held maxheld barrier limit failcnt а nginx-0.5.17-alt1 падать не перестал: 2007/05/02 08:22:23 [alert] 15720#0: worker process 15737 exited on signal 11 2007/05/02 08:22:23 [alert] 15720#0: worker process 15740 exited on signal 11
Там похоже на багу в nginx'овском аллокаторе памяти. Падает он уже на malloc'е, но перед этим сам аллокатор зацикливается. Возможно падает из-за банальной нехватки стека, так как там рекурсия тысяч в двести вызовов получается :) Игорю отписал, жду.
Попробуйте закомментировать в конфиге: connection_pool_size 64;
Это ошибка default configuration. Fixed в 0.5.20. Начиная с этой версии nginx должен ещё и матюкаться на эту ошибку в конфиге, если встретит.