tests: Fix numerous resource leaks#8488
Merged
rustyrussell merged 5 commits intoElementsProject:masterfrom Sep 15, 2025
Merged
Conversation
This file descriptor leak was causing test failures due to exceeding the limit on open file descriptors. Note that the leak only occurred if the RPC socket path was longer than can fit in a struct sockaddr_un. Changelog-Fixed: pyln-client no longer leaks a file descriptor when connecting to an RPC socket with a long path name.
This code has a resource leak: lines = open(fname, 'r').readlines() This is the correct way: with open(fname, 'r') as f: lines = f.readlines() Changelog-None
TailableProc has a cleanup_files() method to close its log files. Call it when tearing down node_factory to avoid leaking resources. Changelog-None
Changelog-None
Collaborator
Author
|
It is possible (I didn't check) that the resource leak in |
7 tasks
Changelog-None
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
UnixSocket.__init__(…)in the fallback path that is executed when the RPC socket path is longer than can fit in astruct sockaddr_un. This was causing file descriptor exhaustion in pytests.lightning/contrib/pyln-client/pyln/client/lightning.py
Line 256 in fcd92fe
utils.env(…)when readingconfig.vars.lightning/contrib/pyln-testing/pyln/testing/utils.py
Line 63 in fcd92fe
node_factory, as it neglects to callcleanup_files()on theLightningDinstances produced by the factory.GossipStore, as it neglects to close the underlying file descriptor when an instance is discarded or when an instance is re-opened.tests/had file descriptor leaks due to callingopenorpathlib.Path.openwithout usingwithand without callingclose(). These are fixed usingwithorpathlib.Path.{read,write}_bytes.Checklist
Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked: