This repository has been archived by the owner on Aug 23, 2020. It is now read-only.
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.
Description of change
There is a race condition occurring between the tip requesting, and the broadcast and reply stages. There is a write flag being switched on and off by the various threads that stop the
sendQueue
from being polled from and sent to neighbours. As a result, we see a large spike in dropped transaction requests, and the node will stop synchronising. Once a node runs into this error the only remedy is to drop and reconnect the neighbour, and even then the problem could resurface any time there's a large amount of transactions being processed simultaneously.To fix this we can remove the back and forth switching of this write flag.
Type of change
How the change has been tested
Nodes no longer froze when synchronising with neighbours.
Change checklist