From 07e6f43e1da13975074bb84e63cb4bc0cdc82e3a Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Wed, 25 Sep 2019 18:50:28 +0200 Subject: [PATCH] master: Set our own rlimit for number of fds We should never open more than 1024 file descriptors anyway, and under some situations, namely running as root or in docker, would give us huge allowances. This then results in a huge, unneeded, cleanup for subprocesses, which we use a lot. Fixes #2977 --- lightningd/lightningd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index b41420de2..196e99231 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -76,6 +76,7 @@ #include #include #include +#include #include #include #include @@ -630,6 +631,11 @@ int main(int argc, char *argv[]) struct timers *timers; const char *stop_response; struct htlc_in_map *unprocessed_htlcs; + struct rlimit nofile = {1024, 1024}; + + /*~ Make sure that we limit ourselves to something reasonable. Modesty + * is a virtue. */ + setrlimit(RLIMIT_NOFILE, &nofile); /*~ What happens in strange locales should stay there. */ setup_locale();