[Libreoffice-commits] online.git: wsd/LOOLWSD.cpp

Gökhan Karabulut (via logerrit) logerrit at kemper.freedesktop.org
Mon Aug 10 10:20:27 UTC 2020


 wsd/LOOLWSD.cpp |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit e2e638c468f35322fc123664fd749b199f531780
Author:     Gökhan Karabulut <gokhanettin at gmail.com>
AuthorDate: Sat Aug 8 23:05:17 2020 +0300
Commit:     Michael Meeks <michael.meeks at collabora.com>
CommitDate: Mon Aug 10 12:20:08 2020 +0200

    tdf#124478: Log maximum file descriptor related limits
    
    The number of available file descriptors in a system limits the number
    of documents we can open. We use an fd for client connection, another fd
    for communication with a kit process and a wakeup pipe with 2 fds.
    Therefore, we are left with the maximum number of fds divided by 4
    documents. Out of these documents, reserve 8 (i.e., 32 fds) and log the
    remaining number of documents allowed by the system. Note that Online
    instance can further configure a limit for the maximum number of open
    documents, which is also logged.
    
    Also log the maximum file descriptor allowed by the system, which is the
    number of available file descriptors - 1.
    
    Change-Id: I3972690a6c9995e8d74dcfe25fe87b1ef4c33d4b
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100393
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 02feb23b7..b8c75e5b5 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -41,6 +41,7 @@
 
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/resource.h>
 
 #include <cassert>
 #include <cerrno>
@@ -1327,6 +1328,13 @@ void LOOLWSD::initialize(Application& self)
         LOOLWSD::MaxDocuments = LOOLWSD::MaxConnections;
     }
 
+    struct rlimit rlim;
+    ::getrlimit(RLIMIT_NOFILE, &rlim);
+    LOG_INF("Maximum file descriptor supported by the system: " << rlim.rlim_cur - 1);
+    // 4 fds per document are used for client connection, Kit process communication, and
+    // a wakeup pipe with 2 fds. 32 fds (i.e. 8 documents) are reserved.
+    LOG_INF("Maximum number of open documents supported by the system: " << rlim.rlim_cur / 4 - 8);
+
     LOG_INF("Maximum concurrent open Documents limit: " << LOOLWSD::MaxDocuments);
     LOG_INF("Maximum concurrent client Connections limit: " << LOOLWSD::MaxConnections);
 


More information about the Libreoffice-commits mailing list