classification
Title: test_ftplib.TestTLS_FTPClass: "[Errno 54] Connection reset by peer" on "AMD64 FreeBSD CURRENT Debug 3.x" buildbot
Type: Stage: resolved
Components: Tests Versions: Python 3.7
process
Status: closed Resolution: duplicate
Dependencies: Superseder: Change socket.close() to ignore ECONNRESET
View: 30319
Assigned To: Nosy List: martin.panter, vstinner
Priority: normal Keywords: buildbot

Created on 2017-05-09 15:47 by vstinner, last changed 2017-07-04 14:50 by vstinner. This issue is now closed.

Messages (5)
msg293326 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-05-09 15:47
http://buildbot.python.org/all/builders/AMD64%20FreeBSD%20CURRENT%20Debug%203.x/builds/246/steps/test/logs/stdio

test_check_hostname (test.test_ftplib.TestTLS_FTPClass) ... Exception in thread Thread-84:
Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asyncore.py", line 83, in read
    obj.handle_read_event()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 366, in handle_read_event
    super(SSLConnection, self).handle_read_event()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asyncore.py", line 423, in handle_read_event
    self.handle_read()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asynchat.py", line 171, in handle_read
    self.found_terminator()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 116, in found_terminator
    method(arg)
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 207, in cmd_quit
    self.close()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 406, in close
    super(SSLConnection, self).close()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asyncore.py", line 397, in close
    self.socket.close()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/socket.py", line 417, in close
    self._real_close()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/socket.py", line 411, in _real_close
    _ss.close(self)
ConnectionResetError: [Errno 54] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 279, in run
    asyncore.loop(timeout=0.1, count=1)
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asyncore.py", line 207, in loop
    poll_fun(timeout, map)
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asyncore.py", line 150, in poll
    read(obj)
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/asyncore.py", line 87, in read
    obj.handle_error()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 399, in handle_error
    raise Exception
Exception

ERROR

(...)

======================================================================
ERROR: test_check_hostname (test.test_ftplib.TestTLS_FTPClass)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/test/test_ftplib.py", line 950, in test_check_hostname
    self.client.connect("localhost", self.server.port)
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/ftplib.py", line 155, in connect
    self.welcome = self.getresp()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/ftplib.py", line 234, in getresp
    resp = self.getmultiline()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/ftplib.py", line 220, in getmultiline
    line = self.getline()
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/ftplib.py", line 202, in getline
    line = self.file.readline(self.maxline + 1)
  File "/usr/home/buildbot/python/3.x.koobs-freebsd-current/build/Lib/socket.py", line 586, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

----------------------------------------------------------------------
Ran 89 tests in 15.001s

FAILED (errors=1)
Warning -- threading_cleanup() failed to cleanup 0 threads after 4 sec (count: 0, dangling: 2)
Warning -- threading._dangling was modified by test_ftplib
  Before: <_weakrefset.WeakSet object at 0x80577ce28>
  After:  <_weakrefset.WeakSet object at 0x80577c810> 
test test_ftplib failed
msg293410 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-05-10 12:24
See also bpo-30328 (test_ssl) and bpo-30319 (test_imaplib).
msg293587 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-05-12 22:36
Another error on AMD64 FreeBSD CURRENT Non-Debug 2.7:

http://buildbot.python.org/all/builders/AMD64%20FreeBSD%20CURRENT%20Non-Debug%202.7/builds/92/steps/test/logs/stdio

0:04:23 [171/402/1] test_urllib2net failed
test test_urllib2net failed -- Traceback (most recent call last):
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/test/test_urllib2net.py", line 166, in test_fileno
    res = opener.open(req)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/urllib2.py", line 1228, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/urllib2.py", line 1201, in do_open
    r = h.getresponse(buffering=True)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/httplib.py", line 1121, in getresponse
    response.begin()
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/httplib.py", line 438, in begin
    version, status, reason = self._read_status()
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/httplib.py", line 394, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "/usr/home/buildbot/python/2.7.koobs-freebsd-current.nondebug/build/Lib/socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
error: [Errno 54] Connection reset by peer
msg295110 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2017-06-03 22:32
See <https://bugs.python.org/issue30319#msg295109> about the “socket.close” exception, which should only affect 3.6+. But the 2.7 “recv” exception is a bit different.
msg297662 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-07-04 14:50
This issue seems like a duplicate of bpo-30319. While I'm not 100% confident, I'm quite sure that ignoring ECONNRESET in socket.close() should help ;-)
History
Date User Action Args
2017-07-04 14:54:42vstinnerunlinkissue30319 dependencies
2017-07-04 14:50:54vstinnersetstatus: open -> closed
superseder: Change socket.close() to ignore ECONNRESET
messages: + msg297662

resolution: duplicate
stage: resolved
2017-06-03 22:32:08martin.pantersetnosy: + martin.panter
messages: + msg295110
2017-06-03 22:26:56martin.panterlinkissue30319 dependencies
2017-05-12 22:36:30vstinnersetmessages: + msg293587
2017-05-10 12:24:50vstinnersetmessages: + msg293410
2017-05-09 15:47:57vstinnersetkeywords: + buildbot
2017-05-09 15:47:49vstinnercreate