R. David Murray added the comment:
Given:
import socket
from ftplib import FTP
try:
ftp = FTP('host.i.know.will.hang.com', timeout=4)
except socket.timeout:
print('caught')
I see 'caught' printed on the console. However, if I increase the timeout to
400, then on both 3.5 tip and 3.6 tip I get a TimeoutError, not a
socket.timeout. If I increase the timeout to 4000, I get the TimeoutError in a
much shorter time than 4000 seconds.
So, *something* is wrong here. Looking at the code it isn't obvious what.
Here is the traceback:
Traceback (most recent call last):
File "../p36/temp.py", line 4, in <module>
ftp = FTP('xxxx', timeout=4)
File "/home/rdmurray/python/p35/Lib/ftplib.py", line 118, in __init__
self.connect(host)
File "/home/rdmurray/python/p35/Lib/ftplib.py", line 153, in connect
source_address=self.source_address)
File "/home/rdmurray/python/p35/Lib/socket.py", line 712, in create_connection
raise err
File "/home/rdmurray/python/p35/Lib/socket.py", line 703, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
Your traceback is different because your timeout is occurring after the initial
connection. Are you sure your socket.timeout is the correct one? You might
try printing socket.__file__ to check.
----------
nosy: +r.david.murray
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue30956>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com