-
Notifications
You must be signed in to change notification settings - Fork 10.1k
Description
Describe the bug
When you initialize socket server, you can either give it an external instance of HTTPServer, or let socket.io create its own internal instance.
However, in either case, SocketIO tries to close the server when shutting down:
Line 685 in 3b7ced7
| this.httpServer.close(fn); |
In my case, I have my own shutdown procedure elsewhere, and it causes server to throw ERR_SERVER_NOT_RUNNING error, because server.close() was called twice.
This might be appearing now due to new stricter behavior in node.js, I am not sure. This is running on v14.17.3.
Expected behavior
IMO socket.io should only close HTTP server if it's its own instance. If an instance is provided, it's someone else's responsibility to close that server. Socket.IO shouldn't interfere.
Mitigation
I am currently using this hack to prevent the uncaught exception:
ioServer['httpServer'] = null;
ioServer.close();