You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Issue with ftplib.FTP_TLS and server forcing SSL connection reuse #69623
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2016-09-08.23:09:48.027>created_at=<Date2015-10-18.19:44:18.180>labels= ['type-bug', 'library']
title='Issue with ftplib.FTP_TLS and server forcing SSL connection reuse'updated_at=<Date2016-09-08.23:09:48.025>user='https://bugs.python.org/dwaites'
There is an issue with the python FTPS module in the standard library which appears to be related to SSL session reuse. I noticed when I updated to a recent version of Pure-FTPd (1.0.42), python's FTPS library client stopped working and generated an error in the ssl unwrap call when a data connection is opened after prot_p() is used. Checking the change log on that version of Pure-FTPd, there is this note:
The ONLY_ACCEPT_REUSED_SSL_SESSIONS switch (introduced in Pure-FTPd
1.0.22 circa 2009, but disabled back then due to client compatibility
concerns) is now on by default, except in broken clients compatibility mode.
Turning on the broken clients compatibility mode in pure-ftpd makes the Python client work again, so I'm surmising this is related to pure-ftpd forcing SSL session reuse. My question is, is this something the Python standard library should detect, or is it a problem lower in the stack (i.e., libssl?) Incidentally, I can reproduce this behavior on Python 2.7 as well.
Traceback (most recent call last):
File "/home/dwaites/bin/mysqlload.py", line 212, in
main()
File "/home/dwaites/bin/mysqlload.py", line 155, in main
site.retrbinary('RETR ' + cmofile, infile.write)
File "/usr/lib/python3.4/ftplib.py", line 449, in retrbinary
conn.unwrap()
File "/usr/lib/python3.4/ssl.py", line 788, in unwrap
s = self._sslobj.shutdown()
OSError: [Errno 0] Error
Incidentally, there appears to be an old bug report with a similar error message, although the error is encountered in a different context. http://bugs.python.org/issue10808 . Evidently, errors encountered in libssl aren't necessarily being propagated up to python.
Activity
dwaites commentedon Oct 18, 2015
There is an issue with the python FTPS module in the standard library which appears to be related to SSL session reuse. I noticed when I updated to a recent version of Pure-FTPd (1.0.42), python's FTPS library client stopped working and generated an error in the ssl unwrap call when a data connection is opened after prot_p() is used. Checking the change log on that version of Pure-FTPd, there is this note:
1.0.22 circa 2009, but disabled back then due to client compatibility
concerns) is now on by default, except in broken clients compatibility mode.
Turning on the broken clients compatibility mode in pure-ftpd makes the Python client work again, so I'm surmising this is related to pure-ftpd forcing SSL session reuse. My question is, is this something the Python standard library should detect, or is it a problem lower in the stack (i.e., libssl?) Incidentally, I can reproduce this behavior on Python 2.7 as well.
Steps to reproduce:
Traceback (most recent call last): File "/home/dwaites/bin/mysqlload.py", line 212, in main() File "/home/dwaites/bin/mysqlload.py", line 155, in main site.retrbinary('RETR ' + cmofile, infile.write) File "/usr/lib/python3.4/ftplib.py", line 449, in retrbinary conn.unwrap() File "/usr/lib/python3.4/ssl.py", line 788, in unwrap s = self._sslobj.shutdown() OSError: [Errno 0] Errordwaites commentedon Oct 18, 2015
Incidentally, there appears to be an old bug report with a similar error message, although the error is encountered in a different context. http://bugs.python.org/issue10808 . Evidently, errors encountered in libssl aren't necessarily being propagated up to python.
tiran commentedon Sep 8, 2016
I'm going to add session support in bpo-19500 (3.6).