[tahoe-lafs-trac-stream] [Tahoe-LAFS] #1595: nondeterministic failure of allmydata.test.test_introducer.SystemTest.test_system on Windows: Address already in use
Tahoe-LAFS
trac at tahoe-lafs.org
Wed May 23 15:34:47 UTC 2018
#1595: nondeterministic failure of
allmydata.test.test_introducer.SystemTest.test_system on Windows: Address
already in use
----------------------------+-------------------------------------
Reporter: davidsarah | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone: undecided
Component: code | Version: 1.9.0
Resolution: | Keywords: review-needed port test
Launchpad Bug: |
----------------------------+-------------------------------------
Changes (by exarkun):
* keywords: windows cygwin port test => review-needed port test
Old description:
> https://tahoe-lafs.org/buildbot-tahoe-
> lafs/builders/Marcus%20Cygwin%20WinXP/builds/8/steps/test/logs/stdio :
> {{{
> [ERROR]
> Traceback (most recent call last):
> File
> "/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/src/allmydata/test/test_introducer.py",
> line 217, in _restart_introducer_tub
> self.create_tub(self.central_portnum)
> File
> "/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/src/allmydata/test/test_introducer.py",
> line 85, in create_tub
> l = tub.listenOn("tcp:%d" % portnum)
> File
> "/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/support/lib/python2.6
> /site-packages/foolscap-0.6.2-py2.6.egg/foolscap/pb.py", line 573, in
> listenOn
> l.addTub(self)
> File
> "/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/support/lib/python2.6
> /site-packages/foolscap-0.6.2-py2.6.egg/foolscap/pb.py", line 111, in
> addTub
> self.s.setServiceParent(self.parentTub)
> File "/usr/lib/python2.6/site-
> packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/service.py",
> line 186, in setServiceParent
> self.parent.addService(self)
> File "/usr/lib/python2.6/site-
> packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/service.py",
> line 308, in addService
> service.privilegedStartService()
> File "/usr/lib/python2.6/site-
> packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/internet.py",
> line 105, in privilegedStartService
> self._port = self._getPort()
> File "/usr/lib/python2.6/site-
> packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/internet.py",
> line 133, in _getPort
> 'listen%s' % (self.method,))(*self.args, **self.kwargs)
> File "/usr/lib/python2.6/site-
> packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/internet/posixbase.py",
> line 431, in listenTCP
> p.startListening()
> File "/usr/lib/python2.6/site-
> packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/internet/tcp.py",
> line 622, in startListening
> raise CannotListenError, (self.interface, self.port, le)
> twisted.internet.error.CannotListenError: Couldn't listen on any:2795:
> [Errno 112] Address already in use.
>
> allmydata.test.test_introducer.SystemTest.test_system
> }}}
>
> This is on Windows cygwin. I don't know whether it is specific to cygwin;
> I seem to remember that Windows in general will give an error if you try
> to reuse a port just after it has been released.
New description:
https://tahoe-lafs.org/buildbot-tahoe-
lafs/builders/Marcus%20Cygwin%20WinXP/builds/8/steps/test/logs/stdio :
{{{
[ERROR]
Traceback (most recent call last):
File
"/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/src/allmydata/test/test_introducer.py",
line 217, in _restart_introducer_tub
self.create_tub(self.central_portnum)
File
"/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/src/allmydata/test/test_introducer.py",
line 85, in create_tub
l = tub.listenOn("tcp:%d" % portnum)
File
"/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/support/lib/python2.6
/site-packages/foolscap-0.6.2-py2.6.egg/foolscap/pb.py", line 573, in
listenOn
l.addTub(self)
File
"/home/marcus/bbtahoe/Marcus_Cygwin_WinXP/build/support/lib/python2.6
/site-packages/foolscap-0.6.2-py2.6.egg/foolscap/pb.py", line 111, in
addTub
self.s.setServiceParent(self.parentTub)
File "/usr/lib/python2.6/site-
packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/service.py",
line 186, in setServiceParent
self.parent.addService(self)
File "/usr/lib/python2.6/site-
packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/service.py",
line 308, in addService
service.privilegedStartService()
File "/usr/lib/python2.6/site-
packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/internet.py",
line 105, in privilegedStartService
self._port = self._getPort()
File "/usr/lib/python2.6/site-
packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/application/internet.py",
line 133, in _getPort
'listen%s' % (self.method,))(*self.args, **self.kwargs)
File "/usr/lib/python2.6/site-
packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/internet/posixbase.py",
line 431, in listenTCP
p.startListening()
File "/usr/lib/python2.6/site-
packages/Twisted-11.1.0-py2.6-cygwin-1.7.9-i686.egg/twisted/internet/tcp.py",
line 622, in startListening
raise CannotListenError, (self.interface, self.port, le)
twisted.internet.error.CannotListenError: Couldn't listen on any:2795:
[Errno 112] Address already in use.
allmydata.test.test_introducer.SystemTest.test_system
}}}
This is on Windows cygwin. I don't know whether it is specific to cygwin;
I seem to remember that Windows in general will give an error if you try
to reuse a port just after it has been released.
--
Comment:
The test has since been renamed but the underlying problem still exists.
See #2787 for details.
The problem is also cross-platform (though different environments may
encounter the problem with different frequency).
I've fixed the problem for non-Windows (:/) platforms. See
https://github.com/tahoe-lafs/tahoe-lafs/pull/501 for the fix. See #2927
for the Windows fix.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1595#comment:2>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list