Message227582
| Author |
nikratio |
| Recipients |
alex, christian.heimes, dstufft, giampaolo.rodola, janssen, nikratio, pitrou |
| Date |
2014年09月26日.01:24:29 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1411694670.5.0.645076106925.issue22499@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I received a bugreport due to a crash when calling SSLObject.send(). The traceback ends with:
[...]
File "/usr/local/lib/python3.4/dist-packages/dugong-3.2-py3.4.egg/dugong/__init__.py", line 584, in _co_send
len_ = self._sock.send(buf)
File "/usr/lib/python3.4/ssl.py", line 679, in send
v = self._sslobj.write(data)
ssl.SSLError: [SSL: BAD_WRITE_RETRY] bad write retry (_ssl.c:1636)
At first I thought that this is an exception that my application should catch and handle. However, when trying to figure out what exactly BAD_WRITE_RETRY means I get the impression that the fault is actually in Python's _ssl.c. The only places where this error is returned by OpenSSL are ssl/s2_pkt.c:480 and ssl/s3_pkt.c:1179, and in each case the problem seems to be with the caller supplying an invalid buffer after an initial write request failed to complete due to non-blocking IO.
This does not seem to be something that could be caused by whatever Python code, so I think there is a problem in _ssl.c. |
|