From fecaf0b8aabe102b2bf306a6e1fa8cbefa854598 Mon Sep 17 00:00:00 2001 From: Radu Carpa Date: Thu, 16 Mar 2023 08:52:11 +0100 Subject: [PATCH] limit max number of sockets in poller. Fix #1962 The number of FD in the poller is automatically configured from the value of `ulimit -n`. On newer linux installations, this limit is much higher by default. This can result in unbound memory consumption. There is already a mechanism in place to handle the case when `ulimit -n == unlimited`. Extend it to support any unreasonable big limit value. --- src/Xrd/XrdConfig.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xrd/XrdConfig.cc b/src/Xrd/XrdConfig.cc index f1d13566509..f838f214046 100644 --- a/src/Xrd/XrdConfig.cc +++ b/src/Xrd/XrdConfig.cc @@ -1187,7 +1187,7 @@ int XrdConfig::setFDL() // Set the limit to the maximum allowed // - if (rlim.rlim_max == RLIM_INFINITY) rlim.rlim_cur = maxFD; + if (rlim.rlim_max == RLIM_INFINITY || rlim.rlim_max > maxFD) rlim.rlim_cur = maxFD; else rlim.rlim_cur = rlim.rlim_max; #if (defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_5)) if (rlim.rlim_cur > OPEN_MAX) rlim.rlim_max = rlim.rlim_cur = OPEN_MAX;