Bug 9926 - Падает на x86_64
Summary: Падает на x86_64
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: nginx (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-29 12:22 MSD by Vladimir V. Kamarzin
Modified: 2007-08-30 17:56 MSD (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir V. Kamarzin 2006-08-29 12:22:46 MSD
# 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
Comment 1 Denis Smirnov 2006-10-18 01:27:16 MSD
Что с новыми версиями?
Comment 2 Dmitry Lebkov 2006-11-17 10:01:38 MSK
(In reply to comment #1)
> Что с новыми версиями?

0.4.9-alt1 на 2.6.16-ovz-smp-alt12 падает так же.

Comment 3 Denis Smirnov 2007-03-18 14:30:17 MSK
В сизиф ушел новый nginx, прошу проверить с ним.
Comment 4 Michael Shigorin 2007-04-05 16:30:42 MSD
Свежепоставленный на 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
Comment 5 Denis Smirnov 2007-04-26 00:26:37 MSD
Можешь его собрать с --enable debug и посмотреть корку?
Comment 6 Konstantin A Lepikhov (L.A. Kostis) 2007-04-26 01:08:40 MSD
(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

такое бывает, когда ресурсов в контейнере не хватает.
Comment 7 Konstantin A Lepikhov (L.A. Kostis) 2007-04-29 00:54:16 MSD
Думаю, надо баг закрыть, т.к. редкое приложение ведет себя прилично при нехватке
памяти (если, конечно, vvk@ не запускает nginx на std-smp ядре).
Comment 8 Denis Smirnov 2007-04-29 17:31:03 MSD
Мне думается что если мы поймаем точное место в коде где падает, Игорь Сысоев
будет рад сделать так, чтобы nginx корректно вел себя в таких ситуациях.

Редкое приложение имеет такую высокую эффективность использование
system-specific фич и одновременно портируемость.

И меня несколько напрягает то что у нас тут 3 репортера с одной и той же багой.
Comment 9 Vladimir V. Kamarzin 2007-05-02 08:26:43 MSD
(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
Comment 10 Denis Smirnov 2007-05-02 13:33:53 MSD
Там похоже на багу в nginx'овском аллокаторе памяти.
Падает он уже на malloc'е, но перед этим сам аллокатор зацикливается. Возможно
падает из-за банальной нехватки стека, так как там рекурсия тысяч в двести
вызовов получается :)

Игорю отписал, жду.
Comment 11 Denis Smirnov 2007-05-07 18:56:40 MSD
Попробуйте закомментировать в конфиге:

connection_pool_size 64;
Comment 12 Denis Smirnov 2007-05-07 19:26:35 MSD
Это ошибка default configuration. Fixed в 0.5.20.
Начиная с этой версии nginx должен ещё и матюкаться на эту ошибку в конфиге,
если встретит.