Ошибки сегментации Apache2 после каждой полуночи

Я вижу странную ошибку на моей машине для разработки Ubuntu. Это продолжается уже почти год. Тем временем я переустанавливал ubuntu в каждом выпуске (а не только после обновления до следующего выпуска).

Каждый день, когда я включаю свой компьютер, я вижу эту ошибку в журнале ошибок apache, и мои локальные веб-сайты кажутся ужасно медленными:

[core:notice]  AH00051: child pid 8467 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[core:error]  AH00546: no record of generation 0 of exiting child 8467
[core:notice]  AH00051: child pid 8469 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[core:error]  AH00546: no record of generation 0 of exiting child 8469
[core:notice]  AH00051: child pid 8479 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[core:error]  AH00546: no record of generation 0 of exiting child 8479
[core:notice]  AH00051: child pid 8481 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[core:error]  AH00546: no record of generation 0 of exiting child 8481
[core:notice]  AH00051: child pid 8482 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[core:error]  AH00546: no record of generation 0 of exiting child 8482
[core:notice]  AH00051: child pid 8485 exit signal Segmentation fault (11), possible coredump in /etc/apache2
[core:error]  AH00546: no record of generation 0 of exiting child 8485

Это продолжается до тех пор, пока я не выполню sudo service apache2 restart : после этой команды apache запускается нормально и все работает.

Я сказал про полночь, потому что это происходит каждый день, когда я включаю свой компьютер, но потому что из огромного объема работы мне пришлось проработать несколько дней после полуночи, и я заметил, что даже когда мой компьютер уже включен, эта ошибка возникает ровно в полночь.

Единственное, что приходит мне в голову, это logrotate, который настроен на ежедневное выполнение для apache2. Я всегда редактирую этот файл конфигурации, чтобы сделать журналы apache доступными для чтения и записи пользователем (мне он нужен для чтения журналов PHP).

/var/log/apache2/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 777 root adm
    sharedscripts
    postrotate
                if invoke-rc.d apache2 status > /dev/null 2>&1; then \
                    invoke-rc.d apache2 reload > /dev/null 2>&1; \
                fi;
    endscript
    prerotate
        if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
            run-parts /etc/logrotate.d/httpd-prerotate; \
        fi; \
    endscript
}

Может быть, это причина? Единственное, что я изменил, это то, что создает строку 777 root adm ...

1
задан 10 February 2019 в 10:36
1 ответ

Найдите аварийный дамп и получите трассировку стека с помощью символы, читаемые человеком.

Установите пакеты символов отладки как минимум для httpd. Установите gdb.

Определите, куда идут дампы ядра. Для получения более подробной информации см. Ядро man.

cat /proc/sys/kernel/core_pattern

Если перед ним стоит канал ( | ), у вас есть система обработки сбоев и отчеты, вероятно, сохраняются в / var / crash / . Получите трассировку с помощью apport-retrace --stdout

Если шаблон имени файла, дампы ядра отправляются туда. Прочтите руководство GDB о том, как загрузить файл ядра.

С помощью символов вы можете определить, где произошел сбой, и сообщить об этом в свой канал поддержки Apache HTTPD.

0
ответ дан 4 December 2019 в 03:17

Теги

Похожие вопросы