chiark / gitweb /
logind: fail gracefully if too many sessions are created
authorLennart Poettering <lennart@poettering.net>
Tue, 11 Oct 2011 02:43:01 +0000 (04:43 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 11 Oct 2011 02:43:01 +0000 (04:43 +0200)
https://bugzilla.redhat.com/show_bug.cgi?id=744726

TODO
src/logind-dbus.c

diff --git a/TODO b/TODO
index aa51332c05bd0d6b792890e68903d7d109706e65..779d1a30ddbc5ef0f693efb0e6fcef66df973d1d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -17,14 +17,10 @@ Bugfixes:
 
 * make polkit checks async
 
-* fail gracefully if logind reaches it RLIMIT_NFILES for fifos
-
 Features:
 
 * ConditionCapability=
 
-* read fedora style timezone name config for compat
-
 * if we can not get user quota for tmpfs, mount a separate tmpfs instance
   for every user in /run/user/$USER with a configured maximum size
 
index bc1e49d18fa2cd4450bc2ddfab9a8199981f6672..0550d1bd1cc6b29ebe698c6d3e0a4644ed292d89 100644 (file)
@@ -973,8 +973,11 @@ static DBusHandlerResult manager_message_handler(
         } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "CreateSession")) {
 
                 r = bus_manager_create_session(m, message, &reply);
-                if (r == -ENOMEM)
-                        goto oom;
+
+                /* Don't delay the work on OOM here, since it might be
+                 * triggered by a low RLIMIT_NOFILE here (since we
+                 * send a dupped fd to the client), and we'd rather
+                 * see this fail quickly then be retried later */
 
                 if (r < 0)
                         return bus_send_error_reply(connection, message, &error, r);