Fix for DHTHealthManager returning incorrect results #6045
Merged
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 PR fixes an issue with increased peer counts being returned by the
DHTHealthManager
. The problem is that when we send BEP33 responses for active downloads, they are picked up by theDHTHealthManager
and added to the nearest infohash. A similar issue could present when we receive BEP33 responses for active downloads.To fix the issue we keep track of transaction_id -> infohash. Unfortunately, this means that we have to process all incoming and outgoing DHT messages. Note that I'm assuming that transaction_ids for in-flight requests are unique.