Сбои в работе Apache 2.2 при перезапуске с Phusion Passenger 3.0.19

Когда я перезапускаю prefork Apache 2.2.22 (как установлено из Debian Testing), если модуль Passenger 3.0.19 включен, то иногда (примерно в 50% случаев; хотя я могу перезапускать десятки раз с отключенным модулем), это вызывает ошибку:

[Пт Фев 01 15:15:53 ​​2013] [извещение] SIGHUP получено. Попытка перезагрузки
[Пт Фев 01 15:15:53 ​​2013] [извещение] В родительском процессе обнаружена ошибка сегмента или аналогичная неприятная ошибка

Присоединение strace к родительскому процессу Apache (т.е. запуск sudo strace -aef -p $(cat /var/run/apache2.pid) 2>&1 | tee strace.out и перезапустив его, я получаю:

select (0, NULL, NULL, NULL, {0, 238909}) = 0 (Тайм-аут)
waitpid(-1, 0xbff64bc8, WNOHANG|WSTOPPED) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Тайм-аут)
waitpid(-1, 0xbff64bc8, WNOHANG|WSTOPPED) = 0
select(0, NULL, NULL, NULL, {1, 0}) =? ERESTARTNOHAND (будет перезапущен)
--- SIGHUP (зависание) @ 0 (0) ---
sigreturn() =? (маска теперь [])
rt_sigaction(SIGHUP, {SIG_IGN, [], SA_INTERRUPT}, {0xb7718c80, [HUP USR1], 0}, 8) = 0
rt_sigaction(SIGUSR1, {SIG_IGN, [], SA_INTERRUPT}, {0xb77c [HUP USR1], 0}, 8) = 0
getpgrp() = 32673
kill(-32673, SIGHUP) = 0
--- SIGHUP (Hangup) @ 0 (0) ---
gettimeofday({1359731753, 208533}, NULL) = 0
select(0, NULL, NULL, NULL, {0, 16384}) = 0 (время ожидания)
gettimeofday({1359731753, 236019}, NULL) = 0
waitpid(437, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitpid(438, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitpid(439, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitpid(440, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitpid(441, 0xbffOHED | WSTOPPED) W0 NULL, NULL, NULL, {0, 65536}) =? ERESTARTNOHAND (для перезапуска)
--- SIGCHLD (дочерний выход) @ 0 (0) ---
select(0, NULL, NULL, NULL, {0, 105}) = 0 (тайм-аут)
gettimeofday({1359731753, 303186}, NULL) = 0
waitpid(437, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitpid(438, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitpid(439, 0xbff64b38, WNOHANG|WSTOPPED) = 0
waitbbff404) = 0
waitpid(441, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED) = 441
select(0, NULL, NULL, NULL, {0, 262144}) =? ERESTARTNOHAND (подлежит перезапуску)
--- SIGCHLD (дочерний процесс завершен) @ 0 (0) ---
select(0, NULL, NULL, NULL, {0, 238145}) =? ERESTARTNOHAND (подлежит перезапуску)
--- SIGCHLD (дочерний процесс завершен) @ 0 (0) ---
select(0, NULL, NULL, NULL, {0, 235519}) =? ERESTARTNOHAND (подлежит перезапуску)
--- SIGCHLD (дочерний процесс завершен) @ 0 (0) ---
select(0, NULL, NULL, NULL, {0, 233040}) =? ERESTARTNOHAND (для перезапуска)
--- SIGCHLD (дочерний выход) @ 0 (0) ---
select(0, NULL, NULL, NULL, {0, 231767}) = 0 (тайм-аут)
gettimeofday({1359731753, 568539}, NULL) = 0
waitpid(437, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED) = 437
waitpid(438, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED) = 438
waitpid(439, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED) = 439
waitpid(440, [{WIFEXITED(s) && WEXITSTATUS(s)) == 0}], WNOHANG|WSTOPPED) = 440
gettimeofday({1359731753, 569299}, NULL) = 0 запись (2, "[Пт, 01 февраля 15:15:53 ​​2013] [noti"..., 76) = 76
semctl(2293768, 0, IPC_64|IPC_RMID, 0xbff64d28) = 0
munmap(0xb44b6000, 512008) = 0
munmap(0xb53fb000, 366400) = 0
munmap(0xb52de000, 1166692) = 0
munmap 0 = 0 munmap 0 = 0 munmap 0 = 0 0 000 000 = 0 munmap 0 = 0 munmap 0 (0 0 0 0 0 0 0 000 000 000 000) 0 = 0 munmap 0 0xb4fcb000, 315072) = 0 munmap (0xb4f65000, 415136) = 0 munmap (0xb61ae000, 81728) = 0 munmap (0xb4e68000, 1035320) = 0 munmap (0xb4e56000, 73416) = 0 mmap 38656) = 0 munmap (0xb4df0000, 31 120) = 0, munmap (0xb4dd7000, 102224) = 0, munmap (0xb4dc7000, 65448) = 0, munmap (0xb4db9000, 56552) = 0, munmap (0xb6230000, 49716) = 0, munmap (0xb5455000, 788176 0) 0885 6000 0 (788176) = 0 = 0
munmap(0xb64de000, 37200) = 0
munmap(0xb6205000, 174580) = 0
munmap(0xb64e8000, 33044) = 0
gettimeofday({1359731753, 577430}, NULL) = 0
munmap(0xb623d000, 1278700 069000000 = 0) 49380) = 0, munmap (0xb5516000, 3301420) = 0, munmap(0xb6573000, 90248) = 0, munmap (0xb652c000, 286840) = 0, munmap (0xb651b000, 66460) = 0, munmap(0xb62ef000, 12769201, 068f), 064 munmap = 0
munmap(0xb62b6000, 232148) = 0
munmap(0xb6280000, 219492) = 0
munmap(0xb6427000, 635728) = 0
munmap(0xb625d000, 139724) = 0
munmap(0xb726b000, 11384) 220000 = 0 munmap munmap(0xb697d000, 69912) = 0
munmap(0xb67bc000, 432348) = 0
munmap(0xb693d000, 205020) = 0
munmap(0xb6792000, 168516) = 0
munmap(0xb6731000, 333220) = 0
munmap(0x83) 0554 (0x83) 0554 (0x83) 0554 (0x83) 0554 (0x) 0554 (0x) 0674 (0x) 0674 (0x) 067 m) 0xb6717000, 105524) = 0
munmap(0xb6676000, 111176) = 0
munmap(0xb65ae000, 815272) = 0
munmap(0xb6692000, 544748) = 0
munmap(0xb726e000, 15580) = 0
munmap(0xb659c000, 70404) = 0
munmap(0xb658a000, 70320) = 0
munmap(0xb698f000, 111368) = 0
munmap(0xb6826000, 1052672) = 0 закрыть (24) = 0
--- SIGSEGV (ошибка сегментации) @ 0 (0) ---
chdir("/etc/apache2") = 0
rt_sigaction(SIGSEGV, {SIG_DFL, [], SA_INTERRUPT}, {SIG_DFL, [], SA_RESETHAND}, 8) = 0
gettimeofday({1359731753, 600839}, NULL) = 0 запись (2, "[Пт, 01 февраля 15:15:53 ​​2013] [noti"..., 100) = 100 убийств (32673, SIGSEGV) = 0
sigreturn() =? (маска теперь [])
--- SIGSEGV (Ошибка сегментации) @ 0 (0) --- Процесс 32673 отсоединен

Я попытался перекомпилировать модуль (в случае, если проблема была связана с обновлением Apache или его зависимостей), но без радости.

Редактировать: я нашел руководство пользователя Passenger для Apache, которое предполагает, что Passenger был скомпилирован с неверной версией Apache, но предлагать нечего (глядя на dpkg --listНапример, у меня было более одного набора заголовков Apache.

Просто чтобы быть уверенным, я удалил, затем удалил apache2-prefork-dev, libapr1-dev и libaprutil1-dev и повторно запустил скрипт установки, но у меня все еще остается та же проблема.

0 ответов

Другие вопросы по тегам