Ticket #4361 defect closed duplicate
[PATCH] Reactor sometimes refuses to start on Windows (can't assign requested address for InstallWaker)
| Reported by: | Szumo | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | core | Keywords: | easy windows |
| Cc: | Branch: | ||
| Author: | Szumo | Launchpad Bug: |
Description
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.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

