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.
This fixes the issue where the phoenix HTTP server would stop responding after some amount of time. The issue was that since a single thread was being used for the service, it would deadlock itself accessing the
Inner::nodes
map, as thebackground_update_task
could be context switched during an await while a write lock was held, causing the "main" loop to deadlock adding/retrieving nodes (or vice versa). I'm fairly confident this is the fix as now locks will eventually be released as tokio will be driving all tasks, not only a single one.Resolves: #918
This also adds thread names to all of the threads and tokio workers spawned by quilkin for easier debug inspection. This also made me realize that because we use
tokio::main
we spawn a ton of extra workers in the proxy case, but I'll leave fixing that for a different PR.