Apache - как включить coredump и ошибка exit signal Segmentation fault

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск

Самые выгодные сервера‎ в рунете


Ошибка в error логе Apache:

 [Tue Dec 29 01:02:30 2015] [notice] child pid 1002876 exit signal Segmentation fault (11)
[Tue Dec 29 01:02:33 2015] [notice] child pid 1002887 exit signal Segmentation fault (11)
[Tue Dec 29 01:02:33 2015] [notice] child pid 1002889 exit signal Segmentation fault (11)
[Tue Dec 29 01:02:34 2015] [notice] child pid 1001199 exit signal Segmentation fault (11)
[Tue Dec 29 01:02:34 2015] [notice] child pid 1002888 exit signal Segmentation fault (11)
[Tue Dec 29 01:08:21 2015] [notice] child pid 1002877 exit signal Segmentation fault (11)

Для анализа этой проблемы - нужно включить создание core файлов веб-сервером и произвести их дебаг утилитой gdb


1) Размер coredump файлов.
Чтобы инициировать создание файлов дампов безлимитных размеров размером запустите команду:

# ulimit -c unlimited

Изначально должно быть так:

# ulimit -c
0

Нулевой вывод команды означает, что файлы дампов не создаются.


2) Место куда складывать coredump-пы:

# echo "/tmp/httpd/httpd-core.%p" > /proc/sys/kernel/core_pattern

3) Разрешаем ядру создавать файл core в файловой системе.

# echo 2 > /proc/sys/fs/suid_dumpable 


4) В конфиге Apache - httpd.conf добавляем:

CoreDumpDirectory /tmp/httpd  
рестартим Apache и создаем эту директорию: # /etc/init.d/httpd restart && mkdir -p /tmp/httpd && chown apache:apache /tmp/httpd && chmod 0777 /tmp/httpd


5) Дебаг core файла через gdb:

 # gdb /usr/sbin/httpd /tmp/httpd/httpd-core.823330




Links: