Назад | Перейти на главную страницу

Нужна помощь в создании дампа ядра из apache segfault

У меня есть скрипт, который периодически возвращает белый экран смерти в firefox и Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error. chrome.

Когда я пытаюсь получить доступ к сценарию с помощью HTTP-клиента PHP (например, Zend_Http_Client), я периодически получаю исключение (извините, у меня нет точного сообщения на данный момент).

Подозреваю segfault. Это подтверждается строками в моем журнале ошибок, которые выглядят следующим образом: [Thu Mar 18 16:03:02 2010] [notice] child pid 845 exit signal Segmentation fault (11)

Сейчас я использую RedHat и знаю, что RedHat не создает дампы ядра сразу после установки. Я следовал инструкциям здесь http://kbase.redhat.com/faq/docs/DOC-5353, но я не вижу дампов ядра.

Как создать дамп ядра?

Это может быть связано с проблемами, которые я нашел решение с созданием дампа ядра на Centos (который основан на Redhat). Соответствующий ответ Вот, хотя и для php-fpm, а не для apache.

Камнем преткновения для меня, и я подозреваю вас тоже, является то, что если процесс изменил свои собственные привилегии выполнения, ему не разрешено создавать файл дампа ядра, если только /proc/sys/fs/suid_dumpable настроен, чтобы разрешить это. См. Информацию об этом элементе управления на уровне ядра. Вот.

Если apache инициализируется как root и выполняет свои рабочие процессы с ограниченными привилегиями, на это может повлиять указанный выше параметр в дополнение к другим параметрам, которые необходимо установить (путь к дампу ядра, ограничение размера ядра и т. Д.)

Вам необходимо перекомпилировать ваши программы с отладочными символами.

Я написал небольшое руководство по этой теме: http://alekseykorzun.com/post/5251031042/debugging-crashes-on-freebsd; он специфичен для FreeBSD, но может вам помочь.