correctly await async close on adapters#4971
Merged
darrachequesne merged 4 commits intosocketio:mainfrom Sep 14, 2024
Merged
Conversation
7 tasks
Member
|
Hi! Thanks for the pull request 👍 In that case, do you think it would make sense to wait for the completion of Reference: https://nodejs.org/api/http.html#serverclosecallback |
Contributor
Author
|
That is already what is done. The only way to wait for it, is to pass the callback function, which the current code already does. It is not an awaitable function, since it does not return a Promise. |
added 2 commits
March 13, 2024 12:09
|
@darrachequesne What else is needed to get this merged? |
Contributor
Author
|
@darrachequesne I resynced the branch. Can you approve? |
Member
|
@marknelissen thanks 👍 |
5 tasks
darrachequesne
pushed a commit
that referenced
this pull request
Dec 22, 2025
Before this change, `await io.close();` would resolve before the HTTP server was properly shut down. Related: #4971
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The kind of change this PR does introduce
Current behavior
The close of the server does not await the async close operations of the adapters like the MongoAdapter, leading to errors due to premature closing of the underlying connection.
New behavior
The close awaits the async operations on the adapters of the different namespaces. This allows to be sure that e.g. the Mongo connection can be safely disposed of.
Other information (e.g. related issues)
I've chose the
Promise.allSettledto avoid being too disruptive, since the current synchronous implementation already disregards any errors the closing of the adapters might raise.