ошибка: [Errno 32] Сломанный канал, когда PayPal перезванивает в приложение Python Django - PullRequest
3 голосов
/ 27 октября 2010

Привет, я делаю папскую интеграцию с моим приложением django.

Я использую последнюю версию django из SVN и Python 2.6.

Однако я обнаруживал каждый раз, когда песочница PayPal обращалась к моемуURL-адрес уведомления, я получил 500 [Errno 32] Сломанный канал мой стек django.

Кто-нибудь имеет подобный опыт с этим?

Приветствия,

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
----------------------------------------

Ответы [ 2 ]

0 голосов
/ 27 октября 2010

Есть две проблемы.Во-первых, некоторые API PayPal (особенно MassPay) ужасно бедны.

Вторая, и более вероятная, проблема заключается в том, что ваш сервер однопоточный и у него возникают проблемы с корректным вызовом исключения из PayPal.Я смог решить аналогичную проблему, создав html-файл с формой (через POST), которая издевалась над IPN PayPal, а затем посмотрел на результат отладки (или лучше, используя отладчик, подобный тому, что был в PyDev).Конечно, вы можете сделать то же самое с curl.

0 голосов
/ 27 октября 2010

Первая ошибка Сброс соединения по пиру показывает, что соединение было закрыто по пиру (в вашем случае Pypal), а для ошибки Broken pipe эта ошибка возникает, когда Соединение внезапно закрывается без уведомления другого участника (в вашем случае, вашей машины).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...