Подтвердить что ты не робот

Почему mod_wsgi не умеет писать данные? IOError: не удалось записать данные

Что может вызвать эту ошибку:

$sudo tail -n 100/var/log/apache2/error.log '

[Wed Dec 29 15:20:03 2010] [error] [client 220.181.108.181] mod_wsgi (pid=20343): Exception occurred processing WSGI script '/home/username/public_html/idm.wsgi'.  
[Wed Dec 29 15:20:03 2010] [error] [client 220.181.108.181] IOError: failed to write data  

Вот WSGI script:

$ cat public_html/idm.wsgi 
import os
import sys

sys.path.append('/home/username/public_html/IDM_app/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

Почему Django не сможет записывать данные?

Я запускаю Django 1.2.4

4b9b3361

Ответ 1

Эта ошибка без какой-либо трассировки Python может быть вариантом, описанным в:

http://code.google.com/p/modwsgi/issues/detail?id=29&can=1

То есть, происходит, когда соединение HTTP-клиента теряется до того, как полный ответ может быть записан веб-сервером. Он может проявляться как "закрытое соединение клиента", "не удалось записать данные" или "не удалось очистить данные" IOError только в журнале ошибок Apache. То есть, не видно из приложения WSGI, поскольку запись данных происходит после того, как приложение WSGI вернулось и поэтому не может отбросить исключение обратно в приложение, чтобы что-либо сделать с помощью.

Вопрос заключается в том, получаете ли вы сообщение об ошибке из Django, если вы настраиваете ошибки для отправки по электронной почте. Если да, то вместо этого происходит что-то в Django.

Ответ 2

У меня такая же проблема в приложении, которое использует много вызовов AJAX (mod_wsgi 3.3). Есть ли известное решение для этого? Я думал о просто игнорировании исключения, но это, как правило, не очень хорошая идея.

UPDATE

На самом деле это может быть связано с несколькими вещами, но наиболее вероятной причиной является то, что вы используете обратный вызов write вместо yield вашего вывода.

Я считаю, что это поможет:

http://groups.google.com/group/modwsgi/browse_thread/thread/c9cc1307bc10cfff

Ответ 3

Я нашел ту же проблему с моим веб-приложением python в Digital ocean и после проверки файла журнала серьезно я обнаружил, что это была проблема с моей базой данных mysql! Проблема была связана с тем, что у меня закончилось хранилище (ОЗУ) Поэтому проверьте этот вопрос и решите проблему!

`Для Mysql

И this

Надеюсь, что это поможет

Ответ 4

Я делаю ставки, это вопрос с разрешениями. True делает целевой каталог/файл универсальным для записи. Затем сделайте файл, принадлежащий вашей группе www-data (или независимо от вашего пользователя Apache), сделайте его доступным для группы и убедитесь, что ничего в этой папке не является чувствительным, поскольку это может быть проблемой безопасности.