2011-12-30 2 views
1

У меня есть странная проблема здесь, какое решение я не могу понять, с помощью функции поиска в сети:/Питоны подпроцесс с WSGI + Apache MPM-работника: IOError 4

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

IOError at/
[Errno 4] Interrupted system call 

вызов в вопросе:

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

где check_output является аб ackport этой функции из 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 ​​и некоторые директивы каталога.

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

Greets Себастьяну

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

ответ

0

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

WSGIApplicationGroup %{GLOBAL} 

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

сообщение об ошибке Питон для основных вопросов является:

http://bugs.python.org/issue13156

+0

Да, я видел ваш ответ в http://stackoverflow.com/questions/8309465/, но, как я сказал, что я запуск Python 2.6. Я думал об этом решении раньше, но разве это не влияет на производительность моего приложения и вообще ли он решает проблему в версии 2.6? – sbrandt

+0

Пробовал ваше решение, не работает:/ – sbrandt

+0

Хорошо, в моем быстром просмотре вопроса увидел Python 2.7 и предположил ошибочно. :-) –