added a write lock to the txs.filter method and a read lock to the tx… #805
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 filter method of txSortedMap is typically called by caller that holds the "m" RWLock object.
During reorgs, however, a Filter method of txList calls the filter method of txSortedMap but does not engage the lock.
This Filter method is called only by the txPool methods demoteUnexecutables and promoteExecutables, which are only called during reorgs (which explains the low frequency with which this crash occurs).
Description
Added in a read lock and a write lock
Changes
Nodes audience
This PR is in response to a validator crash
Checklist
Additional comments
Have not had time to test this yet but it seemed urgent.