CoreDumpDirectory не работает в Ubuntu;получение ошибки сегментации в журнале ошибок apache2 - PullRequest
1 голос
/ 29 апреля 2011

Я не могу записать сбои apache2 в CoreDumpDirectory в Ubuntu 10.10. Я использую Django 1.2.3 и apache2 с mod_wsgi. Я следовал инструкциям в ответ на этот вопрос, но безрезультатно. Я добавил - CoreDumpDirectory /var/cache/apache2/
в конце файла apache2.conf, а затем после выполнения 'ulimit -c unlimited', перезапустил сервер apache. Затем я реплицировал условие, которое заставляет журнал ошибок apache показывать «child pid 27288 exit signal Segmentation fault (11)», но нет упоминания о журналировании apache2, которое приводит к сбою в CoreDumpDirectory, а также в /var/cache/apache2.

EDIT:

Мне удалось решить эту проблему. Проблема заключалась в инициализации среды PyLucene во время выполнения. Я выполнял вызов initvm () каждый раз, когда приходит запрос, и он вызывает ошибку сегментации. Эта ссылка указала, что я должен сделать это в файле .wsgi, и после того, как я это сделал, не было ошибок сегментации.

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Я также столкнулся с этой проблемой детей mod_wsgi, которые не выгружают ядро. Короче говоря: вам нужно отредактировать /etc/sysctl.conf и установить fs.suid_dumpable=2.

Длинная история:

Linux предотвращает дамп ядра для процессов, которые запускались как root, а затем сбрасывали привилегии. (Это функция безопасности, поэтому исполняемые файлы SUID не пропускают свою память пользователю). Установка suid_dumpable = 2 означает, что файлы ядра будут принадлежать пользователю root, поэтому здесь также нет прямой проблемы безопасности.

Почему это влияет на mod_wsgi? Очевидно, дочерние процессы mod_wsgi отключены от основного процесса Apache. Apache обычно запускается с правами суперпользователя, поскольку ему нужно привязать номера привилегированных портов, например, 80, а затем отбрасывать привилегии.

(Оригинальный отчет об ошибке: https://code.google.com/p/modwsgi/issues/detail?id=247)

0 голосов
/ 02 мая 2011

Мне удалось решить эту проблему.Проблема заключалась в инициализации среды PyLucene во время выполнения.Я выполнял вызов initvm () каждый раз, когда приходит запрос, и он вызывает ошибку сегментации. Эта ссылка указывает, что я должен сделать это в файле .wsgi, и после того, как я это сделал, не было ошибок сегментации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...