LINUX.ORG.RU
ФорумAdmin

Библиотека или модуль Apache2

 


0

1

Приветствую всех!
В логах апача стала появляться ошибка

[Tue Nov 02 09:03:01.017411 2021] [core:notice] [pid 690] AH00052: child pid 99790 exit signal Segmentation fault (11)
[Tue Nov 02 09:03:19.034185 2021] [core:notice] [pid 690] AH00052: child pid 99792 exit signal Segmentation fault (11)
[Tue Nov 02 09:04:02.077270 2021] [core:notice] [pid 690] AH00052: child pid 99794 exit signal Segmentation fault (11)
[Tue Nov 02 09:04:07.084367 2021] [core:notice] [pid 690] AH00052: child pid 99815 exit signal Segmentation fault (11)
Причем, ошибка происходит чаще, чем раз в минуту.
Отключение крон и memcache не дали результата, ошибка не прекратилась.
Прикрепил gdb к процессу 690
$ sudo gdb
(gdb) attach 690
Attaching to process 690
Reading symbols from target:/usr/sbin/apache2...
(No debugging symbols found in target:/usr/sbin/apache2)
Reading symbols from target:/lib/x86_64-linux-gnu/libpcre.so.3...
..........
..........
Дождался возникновения ошибки и выполнил
$ (gdb) backtrace full
..........
..........
(No debugging symbols found in target:/usr/lib/php/20190902/memcached.so)
Reading symbols from target:/lib/x86_64-linux-gnu/libmemcached.so.11...
(No debugging symbols found in target:/lib/x86_64-linux-gnu/libmemcached.so.11)
0x00007f7a55602866 in __GI___select (nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x7ffd103a62f0) at ../sysdeps/unix/sysv/linux/select.c:41
41      ../sysdeps/unix/sysv/linux/select.c: No such file or directory.
(gdb) backtrace full
#0  0x00007f7a55602866 in __GI___select (nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x7ffd103a62f0)
    at ../sysdeps/unix/sysv/linux/select.c:41
        resultvar = 18446744073709551102
        sc_ret = <optimized out>
#1  0x00007f7a557220d5 in apr_sleep () from target:/lib/x86_64-linux-gnu/libapr-1.so.0
No symbol table info available.
#2  0x00005601f50b9fbe in ap_wait_or_timeout ()
No symbol table info available.
#3  0x00007f7a5535415c in ?? () from target:/usr/lib/apache2/modules/mod_mpm_prefork.so
No symbol table info available.
#4  0x00005601f50b9490 in ap_run_mpm ()
No symbol table info available.
#5  0x00005601f50b1008 in main ()
No symbol table info available.
Я так понимаю, что апач ругается на модуль/библиотеку libapr-1
Раскопал информацию по этому модулю
Написано, что это библиотека Apache для обеспечения кросс-платформенности, библиотека времени выполнения.
Судя по характеру ошибки кто кого-то не может дождаться.
Что дальше делать то?

Вариантов два:

  • Обновить систему полностью. Скорее всего, в Вашем случае что-то обновилось, а что-то нет, поэтому похоже что не находятся нужные ф-ии из библиотеки. Перед полным обновлением не забудьте сделать полный бекап критически важных данных.

  • Этот вариант Вам понравится меньше, но я не могу его не упомянуть. Задуматься о переходе со связки Apache + memcached на связку nginx + memcached. Апач это реально монстр и уже чуток подумерший монстр. Но тут нужно решение руководства (владельцев бизнеса), Ваша готовность к переходу и… опять таки полный бекап критически важных данных. =)))

Moisha_Liberman ★★
()

что то сразу не очень внимательно логи изучил.
Сейчас пригляделся, а там же явно ошибка указана

0x00007f7a55602866 in __GI___select (nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x7ffd103a62f0) at ../sysdeps/unix/sysv/linux/select.c:41
41      ../sysdeps/unix/sysv/linux/select.c: No such file or directory.
Осталось понять, что именно она значит...

rafaello
() автор топика
Ответ на: комментарий от rafaello

Я не зря там выше Вам порекомендовал...

заапдейтить всю систему.

Сейчас пригляделся, а там же явно ошибка указана

Указанная ошибка, на которую я сразу глянул, это идёт от libc (glibc), т.е., от основной системной библиотеки времени исполнения. Это значит только одно – либо косая библиотека, хотя, откуда бы? Либо просто не паря себе мозг сохраняем данные и апдейтим всю систему.

У Вас там сейчас какой-то косяк с реализацией ф-ии select() в glibc, насколько я понимаю. При чём, вылет по таймауту.

Приговор суров, но справедлив – апдейт системы. Полный.

Moisha_Liberman ★★
()

Я бы тыкал пальцем в небо (думал/телепатировал) так:

../sysdeps/unix/sysv/linux/select.c: No such file or directory.

Это означает, что падает на селекте, то есть на ожидании.

in apr_sleep ()

Так и есть.

ap_wait_or_timeout ()

Скорее всего по timeout

mod_mpm_prefork.so

То есть по timeout прибиваются mpm prefork-и

1. Либо настройки prefork-а шалят либо

2. Не правильно отрабатывают (закрываются) эти самые thread/workers или чего там в апаче и соответственно прибиваются по timeout.

Возможно, не отдаются все ресурсы типа открытых файлов, не проходит резолв какого-нить адреса или ещё чего-нить.

В общем, по данному логу нельзя понять ничего. Надо смотреть логи реального приложения и искать там причину.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.