[PATCH] Reactor sometimes refuses to start on Windows (can't assign requested address for InstallWaker)

[email protected] Tue, 09 Mar 2010 11:21:00 -0000
Newsgroups gmane.comp.python.twisted.bugs
Message-ID <[email protected]>
New submission from Szumo <None>:

Trying to start trial on Windows sometimes results in following traceback:
{{{
    from twisted.internet import reactor, protocol, error, defer
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\reactor.py", line 38, in <module>
    selectreactor.install()
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\selectreactor.py", line 200, in install
    reactor = SelectReactor()
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\selectreactor.py", line 72, in __init__
    posixbase.PosixReactorBase.__init__(self)
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\posixbase.py", line 171, in __init__
    ReactorBase.__init__(self)
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\base.py", line 470, in __init__
    self._initThreads()
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\base.py", line 892, in _initThreads
    self.installWaker()
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\posixbase.py", line 207, in installWaker
    self.waker = _Waker(self)
  File "c:\python25\lib\site-packages\twisted-10.0.0-py2.5-win32.egg\twisted\internet\posixbase.py", line 75, in __init__
    client.connect(server.getsockname())
  File "<string>", line 1, in connect
socket.error: (10049, "Can't assign requested address")
}}}
It turns out socket.getsockname _sometimes_ returns ('0.0.0.0', port) instead of ('127.0.0.1', port) on Windows.

I use attached simple patch to fix the problem, could one of core developers please review/commit it.

----------
Type     : defect
Component: core
Keywords : easy windows
Priority : normal
Nosy     : 
----------
http://twistedmatrix.com/trac/ticket/4361