Подпроцесс Pythons с WSGI + Apache mpm-worker: IOError 4

1

У меня есть странная проблема, решение которой я не могу найти, просматривая сеть:/

После переключения Apache из mpm-prefork в mpm-worker, использование подпроцесса в моем (Django) приложении Python WSGI вызывает следующее исключение:

IOError at /
[Errno 4] Interrupted system call

Этот вызов:

out = check_output(['sudo', 'quota', user_id])

где check_output является backport этой функции из Python 2.7, в то время как я использую Python 2.6 из репозиториев Debian Squeeze.

Фактически процессы, похоже, исполняются, но умирают:

ps aux | grep quota
root     15378  0.0  0.0  21864  1176 ?        S    02:34   0:00 sudo quota ...SOME_ID...
root     15379  0.0  0.0      0     0 ?        Z    02:34   0:00 [quota] <defunct>

Конфигурация Apache - это не более чем настройка WSGIScriptAlias и некоторых директив каталога.

Я пропустил очевидное?

Приветствует Себастьяна

Решение: Оказалось, что ошибка в sudo 1.7.4-4 поставляется с Debian 6. Решено, установив последнюю версию 1.8.x.deb со своей домашней страницы.

Теги:
wsgi
subprocess
worker

1 ответ

0

В Python 2.7.2 есть ошибка, из-за чего fork в суффиксных интерпретаторах терпит неудачу. Попробуйте установить:

WSGIApplicationGroup %{GLOBAL}

в конфигурации Apache для этого приложения WSGI, чтобы принудительно использовать основной интерпретатор.

Отчет об ошибках Python для основных проблем:

http://bugs.python.org/issue13156

  • 0
    Да, я видел ваш ответ в stackoverflow.com/questions/8309465 , но, как я уже сказал, я использую Python 2.6. Я думал об этом решении ранее, но не влияет ли это на производительность моего приложения и решает ли оно проблему в 2.6 вообще?
  • 0
    Пробовал ваше решение, не работает: /
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню