summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-10-11 04:43:01 +0200
committerLennart Poettering <lennart@poettering.net>2011-10-11 04:43:01 +0200
commit688c56ff7d124124007761f917a2950364509043 (patch)
tree62ff14a2fe368627c5fb76872e3372c533076b51
parenta724d2ed799a8985193ba70c5c3e76f621815e10 (diff)
logind: fail gracefully if too many sessions are created
https://bugzilla.redhat.com/show_bug.cgi?id=744726
-rw-r--r--TODO4
-rw-r--r--src/logind-dbus.c7
2 files changed, 5 insertions, 6 deletions
diff --git a/TODO b/TODO
index aa51332c05..779d1a30dd 100644
--- 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
diff --git a/src/logind-dbus.c b/src/logind-dbus.c
index bc1e49d18f..0550d1bd1c 100644
--- a/src/logind-dbus.c
+++ b/src/logind-dbus.c
@@ -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);