Операционная система: CentOS Linux версии 7.6.1810 (Core)
Журнал ошибок: /var/log/httpd/error.log
Версия Apache: Apache / 2.4.6
Пытаясь отладить задачу PHP cron, я вижу в error.log некоторые ошибки segfaults примерно в то время, когда она пытается выполнить. Каждой записи segfault в строке выше предшествует ошибка «Невозможно убить процесс» для другого идентификатора процесса (например):
Sun Apr 14 18:18:27 2019 (1893): Error Cannot kill process 1169: Success!
[Sun Apr 14 18:18:27.170950 2019] [core:notice] [pid 6755] AH00052: child pid 1893 exit signal Segmentation fault (11)
Идентификатор процесса (и, очевидно, отметка времени) в верхней строке различается для каждого экземпляра. Он никогда не совпадает с pid или дочерним pid во второй строке.
Я не нашел никакой информации об этом сообщении об ошибке. Искать его непросто.
Основной процесс состоит в том, что у меня есть некоторые задачи cron PHP (7.1.27), запущенные в Drupal 8.6.12, а crontab использует wget на URL-адресе cron сайта Drupal, чтобы проверить, не отстают ли какие-либо от графика, и запускает любые из них. Существует еженедельная задача (которая выполняет очень медленные запросы MySQL), которая кажется, что она не работает, потому что httpd полностью останавливается на полпути выполнения задачи (я не уверен, так ли это на самом деле или нет, но у меня есть доказательства к этому), что означает, что Drupal не может записать успех или неудачу, и при следующем запуске crontab он пытается запустить его снова, полагая, что он еще не запущен. Я верю, что именно об этом говорят мне эти segfaults, но я не могу разобраться в «Успехе!». сообщение об ошибке. Я даже не уверен, о чем сообщает эта ошибка, чтобы иметь возможность отлаживать дальше.
Изменить: дополнительная информация из httpd -l:
Compiled in modules:
core.c
mod_so.c
http_core.c
Информация из httpd -V:
Server MPM: prefork
threaded: no
forked: yes (variable process count)
edit: изменил мою конфигурацию на использование php-fpm и событийного MPM, но, к сожалению, задача cron все еще дает сбой, и теперь я вижу «zend_mm_heap поврежден» вместо segfaults. Но я предполагаю, что технически ошибка segfault исчезла.