PyAPNs icon indicating copy to clipboard operation
PyAPNs copied to clipboard

No Error handling when sockets fail

Open dsanghan opened this issue 9 years ago • 4 comments

I'm sending frames of about 50 tokens for remote fetch notifications. I sometimes get a SIGPIPE when sending notifications in close succession. The self._connection().write() crashes with the following:

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 1082, in run
    self.function(*self.args, **self.kwargs)
  File "listen.py", line 50, in sendNotification
    apns.gateway_server.send_notification_multiple(frame)
  File "/home/dev/backend/apns.py", line 559, in send_notification_multiple
    return self.write(frame.get_frame())
  File "/home/dev/backend/apns.py", line 267, in write
    return self._connection().write(string)
  File "/usr/lib/python2.7/ssl.py", line 272, in write
    return self._sslobj.write(data)
error: [Errno 32] Broken pipe

Maybe its better if its wrapped in a try:except: and a _disconnect()/_connect() is subsequently called?

dsanghan avatar Sep 22 '16 18:09 dsanghan

having the same issue, sometimes alternating with [SSL: BAD_WRITE_RETRY] bad write retry (_ssl.c:1625)

Not sure if they stem from the same source. Would be nice if a fix was proposed for this?

vitriol avatar Oct 27 '16 10:10 vitriol

Is there a workaround for this problem? I'm seeing it as well with send_notification_multiple.

timabbott avatar Jul 12 '17 17:07 timabbott

I wonder if some requests succeed and others fail or is it always fail?

borisyankov avatar Jul 12 '17 17:07 borisyankov

I think my next step in debugging this is to try to confirm the possibility that this relates to having a large number of tokens.

timabbott avatar Jul 12 '17 17:07 timabbott