Вопрос

Я использую Redmine на Apache 2 с mod_rails (passenger) 2.0.3 и Enterprise Ruby 1.8.6. Время от времени я получаю ошибку от Apache, когда пытаюсь войти в систему. Кто-нибудь знает, как я могу отладить эту проблему? Я вижу что-то вроде этого в Apache error.log:

[Понедельник, 19 января 17:09:48 2009] [извещение] child pid 8714 Выходной сигнал Ошибка сегментации (11)

Единственный способ заставить приложение работать после этого - перезапустить всю систему (перезапуск только Apache не помогает).

Это было полезно?

Решение

Первые шаги:

<Ол>
  • Узнайте, где хранится файл ядра в вашей системе (при необходимости включите дамп ядра).

  • Запустите file(1) для получившегося файла ядра. Это, вероятно, скажет & Quot; ..., сгенерированный httpd & Quot ;, но это также нужно проверить.

  • Запустите gdb имя исполняемого файла из (2) и файл ядра из (1) и начните копать. Команда where (или bt) - хорошее место для начала: она даст вам трассировку стека в момент, когда процесс сбросил ядро.

  • Похоже, у вас нет большого опыта программирования на C, так что удачи! Выследить такого рода ошибки может быть настоящая собака. Вы можете попробовать опубликовать трассировку стека из (3) здесь, но не задерживайте дыхание, ожидая ответа. В лучшем случае ошибочное имя функции может быть хорошей строкой для передачи в Google.

    Другие советы

    Я столкнулся с похожей проблемой с сегфоутом (11). Нашел следующий вопрос о ServerFault , который предлагал обновление в качестве решения.

    Работал на более старой версии Ubuntu и имел проблему с сегфоутом. do-release-upgrade перенес мою систему в Ubuntu 11.10, и проблема волшебным образом исчезла.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top