-
Notifications
You must be signed in to change notification settings - Fork 471
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
node: close ledger and part keys on node shutdown #6039
node: close ledger and part keys on node shutdown #6039
Conversation
* node_test runs multiple nodes in a single process that leads to file descriptors leak (see algorand#5057 for more details). * just closing ledger is not enough because of concurrent operations evaluation operations done by transaction pool. * made transaction pool shutdown-able and stop it before ledger termination.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #6039 +/- ##
==========================================
- Coverage 55.86% 54.84% -1.03%
==========================================
Files 482 482
Lines 68576 68593 +17
==========================================
- Hits 38311 37617 -694
- Misses 27659 28325 +666
- Partials 2606 2651 +45 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Asked two questions, other than that makes sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense
* algorand#6039 discovered blockNotifier preserves state between ledger reloads that breaks accumptions on how trackers work * Made node to clear and re-register block listeners explicitly on fast catchup. * Also removed unused blockListeners arg from data.Ledger
* algorand#6039 discovered blockNotifier preserves state between ledger reloads that breaks assumptions on how trackers work * Made node to clear and re-register block listeners explicitly on fast catchup. * Also removed unused blockListeners argument from data.Ledger
Summary
Deadlock example as seen in this p2p build
Additionally added part keys closing.
Monitored with
while pgrep node.test > /dev/null; do lsof -p $(pgrep node.test) | wc -l; sleep 1; done
on p2p branch:Test Plan
Existing tests should pass