2010-10-27 10 views
3

Salut, je fais l'intégration papale avec mon application django. J'utilise la dernière version de django de svn et python 2.6.erreur: [Errno 32] Pipe brisée quand paypal rappelle l'application python django

Cependant, j'ai trouvé chaque fois que le bac à sable de paypal accédant à mon URL de notification j'ai obtenu 500 [Errno 32] Broken pipe ma pile de django.

Quelqu'un at-il une expérience similaire avec cela?

Cheers,

Traceback (most recent call last): 
    File "/usr/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 281, in run 
    self.finish_response() 
    File "/usr/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 321, in finish_response 
    self.write(data) 
    File "/usr/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 417, in write 
    self._write(data) 
    File "/usr/lib/python2.6/socket.py", line 318, in write 
    self.flush() 
    File "/usr/lib/python2.6/socket.py", line 297, in flush 
    self._sock.sendall(buffer(data, write_offset, buffer_size)) 
error: [Errno 104] Connection reset by peer 
---------------------------------------- 
Exception happened during processing of request from ('216.113.191.33', 21736) 
Traceback (most recent call last): 
    File "/usr/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock 
    self.process_request(request, client_address) 
    File "/usr/lib/python2.6/SocketServer.py", line 309, in process_request 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.6/SocketServer.py", line 322, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/usr/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 562, in __init__ 
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs) 
    File "/usr/lib/python2.6/SocketServer.py", line 618, in __init__ 
    self.finish() 
    File "/usr/lib/python2.6/SocketServer.py", line 661, in finish 
    self.wfile.flush() 
    File "/usr/lib/python2.6/socket.py", line 297, in flush 
    self._sock.sendall(buffer(data, write_offset, buffer_size)) 
error: [Errno 32] Broken pipe 
---------------------------------------- 

Répondre

0

La première erreur Connexion réinitialisée par les pairs vous montrer que la connexion a été fermée par les pairs (dans votre cas Pypal) et l'erreur Broken pipe cette erreur est élevée quand une connexion est fermée soudainement sans informer l'autre pair (dans votre cas votre machine).

+0

Alors, y a-t-il quelque chose que je puisse faire pour empêcher cela? Comme je suis en train de tester contre sandbox paypal, pas sûr que ce symptôme disparaîtra si j'utilise les paramètres live paypal. Merci également –

+0

, j'ai déployé cela en utilisant uwsgi + nginx, j'ai encore 500. –

+0

@Grace Ladder: comme je l'ai dit c'est paypal qui réinitialise la connexion, peut-être vous pouvez modifier votre réponse et ajouter le code que vous utilisez pour vous connecter paypal, espérons que cela peut aider! – mouad

0

Il y a deux problèmes. Tout d'abord, certaines des API paypal (en particulier MassPay) sont terriblement pauvres.

Le deuxième, et plus vraisemblablement, le problème, est que votre serveur est monothread et rencontre des problèmes pour déclencher correctement une exception à paypal. J'ai été capable de résoudre un problème similaire en créant un fichier html avec un formulaire (via POST) qui se moquait d'un IPN paypal et ensuite en regardant le résultat du débogage (ou mieux, en utilisant un débogueur comme celui de PyDev). Vous pourriez faire la même chose avec curl bien sûr.

+0

la chose drôle était j'ai essayé avec curl pour imiter les données de poste, serveur de Django a été survécu, mais se foutu quand paypal a rappelé. fera plus de vérifications sous peu, acclamations –