Issue 5177: multiprocessing: SocketListener should use SO_REUSEADDR (original) (raw)
Without this flag it is necessary to wait for e.g. 120s after closing down a 'BaseManager' server before restarting, due to the socket being in the TIME_WAIT state.
Example error, which occurs if a server is started, data transmitted down the socket, the server shut down, then restarted:
File "/usr/local/lib/python2.6/multiprocessing/connection.py", line
220, in init self._socket.bind(address) File "", line 1, in bind error: [Errno 48] Address already in use
I added (locally): self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
to SocketListener.init, and it resolves the issue.