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.
Can't entirely explain why this would have caused a threading deadlock, but debugging a stuck node showed 2 threads stuck trying to get a lock on the transaction pool at:
server.rs:480:
stem_pool_size: self.tx_pool.read().stempool.entries.len()
dandelion_monitor.rs:159 -
let mut tx_pool = tx_pool.write();
I'd conjecture it occurred for some Rusty reason when the write lock happened to be taken just after the first read lock.
Current fix:
read' to
try_read`I'd guess that only taking the lock once would have been enough to resolve, but no harm just using a
try_read
for tui purposes. Ran with these modifications overnight seems to resolve the freezing issues.