web-dev-qa-db-fra.com

Pourquoi mod_wsgi n'est-il pas capable d'écrire des données? IOError: échec de l'écriture des données

Quelle pourrait être la cause de cette erreur: 

$ 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  

Voici le script WSGI: 

$ 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()

Pourquoi Django ne pourrait-il pas écrire des données?

J'utilise Django 1.2.4

39
BryanWheelock

Cette erreur, sans aucune sorte de trace Python, peut être une variante du problème décrit dans:

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

Cela se produit lorsque la connexion du client HTTP est perdue avant que le serveur Web puisse réécrire la réponse complète. IOError dans le journal des erreurs Apache uniquement peut indiquer «connexion fermée par le client», «échec d'écriture des données» ou «échec de l'effacement des données». C'est-à-dire, non vu par l'application WSGI car l'écriture des données a lieu après le retour de l'application WSGI et ne peut donc pas renvoyer d'exception à l'application avec laquelle elle ne fait rien.

La question est de savoir si vous recevez un message d'erreur de Django si vous configurez les erreurs pour qu'elles vous soient envoyées par courrier électronique. Si vous le faites, alors, il se passe quelque chose dans Django.

27
Graham Dumpleton

J'ai le même problème dans une application qui utilise beaucoup d'appels AJAX (mod_wsgi 3.3). Y at-il une solution connue pour cela? J'ai pensé ignorer l'exception, mais ce n'est généralement pas une très bonne idée.

METTRE À JOUR

En réalité, cela peut être dû à plusieurs facteurs, mais la cause la plus probable est que vous utilisez le rappel write au lieu de yielding votre sortie.

Je crois que cela aidera:

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

6
ubik

J'ai trouvé le même problème avec mon application Web python dans Digital Ocean et après avoir vérifié le fichier journal sérieusement, j'ai découvert qu'il s'agissait d'un problème lié à ma base de données mysql! Le problème était dû au fait que j'exécutais out storage (RAM) Alors, vérifiez ces questions et résoudre le problème!

` Pour Mysql

Et ceci

J'espère que ça va aider 

0
Espoir Murhabazi