Closed socketpair closed 7 years ago
What if you are trying, by mistake, to start a second instance of a server, with the previous one still running? We want to catch that mistake, instead of silently removing the existing socket.
All software that I see unlinks stale socket unconditionally. Can you show any one that checks for the other instance ? Also, seems the kernel checks if address already in use during bind()
even when FS node is removed.
+1 one to do this. @socketpair can you quickly make a PR (so that we can fix this before 3.6b2)?
Although there is another approach: maybe the correct thing to do is to remove the socket file after we close the unix server? How Twisted/Tornado implement this?
@1st1 both Twisted and Tornado clean stale sockets before binding:
@1st1 @ZhukovAlexander @gjcarneiro please review
loop.create_unix_server()
should remove socket at that path if it exists. Every application that wants to use unix socket server should do that. Why not to add code that removes unix socket before binding ?It should:
os.stat()
)