This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pitrou
Recipients amaury.forgeotdarc, barry, ddvoinikov, exarkun, giampaolo.rodola, janssen, jimsmyth, josiah.carlson, josiahcarlson, pitrou, qwavel, rhettinger, srid
Date 2010-03-21.20:49:37
SpamBayes Score 0.000252918
Marked as misclassified No
Message-id <>
The intuitive explanation seems to be:
- there are some bytes available for reading on the *TCP socket*, therefore asyncore calls the read handler
- however, there are not enough bytes for OpenSSL to actually decrypt any data, which is why we get SSL_ERROR_WANT_READ when trying to read from the *SSL socket*

The following patch seems to fix test_ftplib; any thoughts?

Index: Lib/test/
--- Lib/test/	(révision 79224)
+++ Lib/test/	(copie de travail)
@@ -293,7 +293,9 @@
                 return super(SSLConnection, self).send(data)
             except ssl.SSLError, err:
-                if err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN):
+                if err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN,
+                                   ssl.SSL_ERROR_WANT_READ,
+                                   ssl.SSL_ERROR_WANT_WRITE):
                     return 0
@@ -301,6 +303,9 @@
                 return super(SSLConnection, self).recv(buffer_size)
             except ssl.SSLError, err:
+                if err.args[0] in (ssl.SSL_ERROR_WANT_READ,
+                                   ssl.SSL_ERROR_WANT_WRITE):
+                    return ''
                 if err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN):
                     return ''
Date User Action Args
2010-03-21 20:49:42pitrousetrecipients: + pitrou, barry, rhettinger, josiahcarlson, exarkun, amaury.forgeotdarc, janssen, giampaolo.rodola, josiah.carlson, ddvoinikov, srid, qwavel, jimsmyth
2010-03-21 20:49:42pitrousetmessageid: <>
2010-03-21 20:49:37pitroulinkissue3890 messages
2010-03-21 20:49:37pitroucreate