У меня проблема с моим приложением django, которое размещено в apache / mod_wsgi. Я добавил в приложение код matplotlib, и теперь рабочие процессы apache завершаются сбоем.
Я уменьшил эту проблему до следующего:
- Без каких-либо приложений импорта matplotlib работает нормально
- когда в любом месте приложения добавляется «import matplotlib», рабочие процессы умирают с segfault, и пользователи не видят ответа от сервера
- "import matplotlib" прекрасно работает в интерпретаторе Python для командной строки - segfault происходит только в процессах apache
Вот запись в журнале:
[Tue May 24 08:29:08 2011] [notice] child pid 17576 exit signal Segmentation fault (11)
Я не могу воспроизвести проблему на другом компьютере.
Я попытался удалить (rm site-packages / matplotli *) и установить разные версии matplotlib (0.99.3, 1.0.0, 1.0.1)
Я попытался установить все модули в virtualenv и указать на virtualenv из моего скрипта .wsgi.
Я попробовал это:
Ошибка: выходной сигнал дочернего pid 6695 Ошибка сегментации (11)
Я также прочитал http://code.google.com/p/modwsgi/wiki/.
Будем весьма благодарны за любые указания относительно того, как отладить / обойти эту проблему.
(я даже готов перейти на любой другой сервер (paste / cherrypy + apache mod_proxy и т. Д.), Чтобы устранить проблему.)
Вот мои настройки apache:
/ usr / sbin / httpd -V
Server version: Apache/2.2.15 (Unix)
Server built: Apr 10 2010 11:21:07
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.3.9, APR-Util 1.3.10
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
/ usr / sbin / httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
/ usr / sbin / httpd -M
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_dbm_module (shared)
authn_default_module (shared)
authz_host_module (shared)
authz_user_module (shared)
authz_owner_module (shared)
authz_groupfile_module (shared)
authz_dbm_module (shared)
authz_default_module (shared)
ldap_module (shared)
authnz_ldap_module (shared)
include_module (shared)
log_config_module (shared)
logio_module (shared)
env_module (shared)
ext_filter_module (shared)
mime_magic_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
usertrack_module (shared)
setenvif_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
info_module (shared)
dav_fs_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
actions_module (shared)
speling_module (shared)
userdir_module (shared)
alias_module (shared)
rewrite_module (shared)
wsgi_module (shared)
ssl_module (shared)
Syntax OK
Apache config
<VirtualHost *:443>
ServerName somesite.com
DocumentRoot "/somedir"
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /somedir/production.wsgi
<..>
</VirtualHost>