fix(net): Fix a potential hang caused by accessing the address book directly #7902
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.
Motivation
The outbound connector accesses the address book directly, potentially blocking other connections or async tasks. Instead, we can send the failure to the channel.
Also there are some unnecessary services arguments in address book updates.
These fixes happened as part of #7787.
PR Author Checklist
Check before marking the PR as ready for review:
Have you added or updated tests?Hangs are extremely difficult to test for.If a checkbox isn't relevant to the PR, mark it as done.
Complex Code or Requirements
Sending to channels is much faster and cheaper than locking a mutex, which can be delayed for a long time under heavy load.
Solution
services
arguments from some address book updatesTesting
Existing tests cover this code, but hangs are hard to test for.
Review
This is a low priority bug fix.
Reviewer Checklist
Check before approving the PR:
PR blockers can be dealt with in new tickets or PRs.
And check the PR Author checklist is complete.