-
Notifications
You must be signed in to change notification settings - Fork 493
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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