Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Open
Description
Bug report
Bug description:
Spotted in the log of "Log from "buildbot/ARM64 macOS 3.x"; this doesn't fix the ftp test but when the operation times out in the test CPython should close the socket
This seems to be originating here:
Lines 1539 to 1556 inf5394c2
| fw=self.connect_ftp(user,passwd,host,port,dirs,req.timeout) | |
| type=fileand'I'or'D' | |
| forattrinattrs: | |
| attr,value=_splitvalue(attr) | |
| ifattr.lower()=='type'and \ | |
| valuein ('a','A','i','I','d','D'): | |
| type=value.upper() | |
| fp,retrlen=fw.retrfile(file,type) | |
| headers="" | |
| mtype=mimetypes.guess_type(req.full_url)[0] | |
| ifmtype: | |
| headers+="Content-type: %s\n"%mtype | |
| ifretrlenisnotNoneandretrlen>=0: | |
| headers+="Content-length: %d\n"%retrlen | |
| headers=email.message_from_string(headers) | |
| returnaddinfourl(fp,headers,req.full_url) | |
| exceptftplib.all_errorsasexp: | |
| raiseURLError(f"ftp error:{exp}")fromexp |
In particular,fw = self.connect_ftp succeeds which meansfw contains an open connection butfp, retrlen = fw.retrfile(file, type) fails and theexcept doesn't result in afw.close().
Log from "buildbot/ARM64 macOS 3.x"
Exceptionignoredwhilefinalizingsocket<socket.socketfd=6,family=2, type=1,proto=6,laddr=('192.168.0.101',57993),raddr=('68.183.26.59',21)>:Traceback (mostrecentcalllast):File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line1546,inftp_openfp,retrlen=fw.retrfile(file,type)~~~~~~~~~~~^^^^^^^^^^^^File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line1826,inretrfileconn,retrlen=self.ftp.ntransfercmd(cmd)~~~~~~~~~~~~~~~~~~~~~^^^^^File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/ftplib.py",line354,inntransfercmdconn=socket.create_connection((host,port),self.timeout,source_address=self.source_address)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/socket.py",line879,increate_connectionraiseexceptions[0]File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/socket.py",line864,increate_connectionsock.connect(sa)~~~~~~~~~~~~^^^^TimeoutError: [Errno60]OperationtimedoutTheaboveexceptionwasthedirectcauseofthefollowingexception:Traceback (mostrecentcalllast):File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/test/test_urllib2net.py",line20,in_retry_thricereturnfunc(*args,**kwargs)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line187,inurlopenreturnopener.open(url,data,timeout)~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line487,inopenresponse=self._open(req,data)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line504,in_openresult=self._call_chain(self.handle_open,protocol,protocol+'_open',req)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line464,in_call_chainresult=func(*args)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line1556,inftp_openraiseURLError(f"ftp error:{exp}")fromexpurllib.error.URLError:<urlopenerrorftperror: [Errno60]Operationtimedout>Duringhandlingoftheaboveexception,anotherexceptionoccurred:Traceback (mostrecentcalllast):File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/test/test_urllib2net.py",line22,in_retry_thricelast_exc=e^^^^^^^^ResourceWarning:unclosed<socket.socketfd=6,family=2,type=1,proto=6,laddr=('192.168.0.101',57993),raddr=('68.183.26.59',21)>Warning--UnraisableexceptionExceptionignoredwhilefinalizingsocket<socket.socketfd=8,family=2, type=1,proto=6,laddr=('192.168.0.101',58055),raddr=('68.183.26.59',21)>:Traceback (mostrecentcalllast):File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line1546,inftp_openfp,retrlen=fw.retrfile(file,type)~~~~~~~~~~~^^^^^^^^^^^^File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line1826,inretrfileconn,retrlen=self.ftp.ntransfercmd(cmd)~~~~~~~~~~~~~~~~~~~~~^^^^^File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/ftplib.py",line354,inntransfercmdconn=socket.create_connection((host,port),self.timeout,source_address=self.source_address)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/socket.py",line879,increate_connectionraiseexceptions[0]File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/socket.py",line864,increate_connectionsock.connect(sa)~~~~~~~~~~~~^^^^TimeoutError: [Errno60]OperationtimedoutTheaboveexceptionwasthedirectcauseofthefollowingexception:Traceback (mostrecentcalllast):File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/test/test_urllib2net.py",line20,in_retry_thricereturnfunc(*args,**kwargs)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line187,inurlopenreturnopener.open(url,data,timeout)~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line487,inopenresponse=self._open(req,data)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line504,in_openresult=self._call_chain(self.handle_open,protocol,protocol+'_open',req)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line464,in_call_chainresult=func(*args)File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/urllib/request.py",line1556,inftp_openraiseURLError(f"ftp error:{exp}")fromexpurllib.error.URLError:<urlopenerrorftperror: [Errno60]Operationtimedout>Duringhandlingoftheaboveexception,anotherexceptionoccurred:Traceback (mostrecentcalllast):File"/Users/buildbot/buildarea/3.x.pablogsal-macos-m1.macos-with-brew/build/Lib/test/test_urllib2net.py",line22,in_retry_thricelast_exc=e^^^^^^^^ResourceWarning:unclosed<socket.socketfd=8,family=2,type=1,proto=6,laddr=('192.168.0.101',58055),raddr=('68.183.26.59',21)>
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Linked PRs
- gh-140691: Close FTP connection on error in urllib.request #140694
- gh-140691: urllib.request: Close FTP control socket if data socket can't connect #140835
- [3.14] gh-140691: urllib.request: Close FTP control socket if data socket can't connect (GH-140835) #141555
- [3.13] gh-140691: urllib.request: Close FTP control socket if data socket can't connect (GH-140835) #141657