Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH00491: caught SIGSEGV, attempting to dump core in /tmp Linux / DevOps

Apache Error AH00491: caught SIGSEGV attempting to dump core — Анализ

Обновлено: 18.08.2026  ·  Официальная база знаний

Мастер-процесс веб-сервера Apache сталкивается с неустранимым нарушением защиты памяти и пытается аварийно сохранить снимок адресного пространства на диск. В журнале error.log регистрируется критическое системное событие: [core:emerg] [pid 1234] AH00491: caught SIGSEGV, attempting to dump core in /tmp.

Компонент паденияОбласть памятиСледствие для сервера
Apache Core EngineКуча (Heap) / Стек вызововМгновенное падение процесса и сброс сессий
Сторонний модуль CНевыделенная память (Null pointer)Попытка записи снимка в CoreDumpDirectory
Директория /tmpФайловая системаСоздание объемного файла core.<pid> (от сотен МБ до ГБ)
  • Служба полностью падает или циклически перезапускается, генерируя тяжелые файлы дампов памяти в каталоге /tmp.
  • Пользователи сталкиваются с обрывами HTTPS сессий и ошибками 502 Bad Gateway / Connection reset.
  1. Проверьте наличие сгенерированных дампов ядра в директории /tmp или каталоге дампов systemd:
    ls -la /tmp/core* 2>/dev/null || sudo coredumpctl list
  2. Установите отладочные символы (debug symbols) для Apache и установленных библиотек:
    # Для Debian/Ubuntu:
    sudo apt install gdb apache2-dbg
    
    # Для RHEL/CentOS:
    sudo dnf install gdb httpd-debuginfo
  3. Запустите отладчик GDB для анализа сбойного файла дампа памяти:
    sudo gdb /usr/sbin/apache2 /tmp/core.<PID>
    
    # Внутри консоли GDB выполните команды:
    (gdb) bt full
    (gdb) info sharedlibrary
    (gdb) quit
  4. Изучите верхние строки вывода bt full (backtrace): они укажут конкретную функцию библиотеки (например, libssl.so, libphp.so, mod_auth_gssapi.so), вызвавшую исключение SIGSEGV.
  5. Если сбой происходит в модуле PHP, проверьте совместимость скомпилированных PECL-расширений (например, grpc, protobuf, redis) с текущей версией PHP.
  6. Отключите директиву CoreDumpDirectory после завершения отладки, чтобы избежать переполнения диска /tmp:
    # Закомментируйте строку в apache2.conf:
    # CoreDumpDirectory /tmp
  7. Перезапустите Apache: sudo systemctl restart apache2.
Внимание к дисковому пространству: Неконтролируемая генерация core dump файлов при высокой посещаемости сайта способна за несколько минут полностью забить корневой раздел диска /, что приведет к отказу базы данных и других сервисов ОС.
Практический опыт инженера: Если дамп указывает на `libcrypto.so` или `mod_ssl`, причиной часто является конфликт разных версий OpenSSL, слинкованных одновременно в Apache и стороннем модуле (например, Python/WSGI).

Частые вопросы (FAQ)

В чем разница между ошибками AH00052 и AH00491?

AH00052 фиксирует падение отдельного дочернего воркера (child worker), тогда как AH00491 выводится при аварии процесса с явной попыткой сохранить дамп памяти ядра через системную директиву CoreDumpDirectory.

Почему core dump файл не создается в /tmp?

Создание дампа может блокироваться системным лимитом ulimit -c 0, параметром ядра fs.suid_dumpable=0 или отсутствием прав на запись у пользователя веб-сервера в целевую директорию.

Может ли аппаратный сбой RAM (битая память) вызывать AH00491?

Да, ошибки ECC/Non-ECC оперативной памяти могут приводить к случайным повреждениям указателей и сегфолтам под высокой вычислительной нагрузкой.

Как очистить накопленные дампы памяти?

Удалите их командой sudo rm -f /tmp/core.* или через утилиту sudo coredumpctl vacuum.