init: Improve file descriptor limit handling #27730
Closed
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.
I was playing with file descriptor limits to test another issue saw the following warning printed when I had configured a file descriptor limit of 150:
The warning could have been resolved with a one-line change but I found the surrounding code hard to reason about at first, so I added a few comments and reorganized the code a bit for better clarity.
Aside from the warning there is one further behavior change: If the limitation of file descriptors prevents the node from making any connections the node doesn't start unless the user has explicitly set
-maxconnections
to 0. This is not just about the node not being able to make connections: When I started the node right at the limit I wasn't able to shut it down cleanly any more several times and instead had to kill the process manually. So this shouldn't be anything normal users should be able to run into.