chiark / gitweb /
logind: create the session fifo before saving the session file
authorThomas Hindoe Paaboel Andersen <phomes@gmail.com>
Wed, 13 Nov 2013 17:06:34 +0000 (18:06 +0100)
committerThomas Hindoe Paaboel Andersen <phomes@gmail.com>
Wed, 13 Nov 2013 17:06:34 +0000 (18:06 +0100)
If the session fifo is not created the session state written to
the session file is "closing". This caused the lock screen in
gnome-shell to go into a loop trying to find the active session.

The problem was introduced in the sd-bus port in
cc3773810855956bad92337cee8fa193584ab62e

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71525

src/login/logind-session-dbus.c

index 167d2ab..fa9c003 100644 (file)
@@ -644,14 +644,14 @@ int session_send_create_reply(Session *s, sd_bus_error *error) {
         if (error)
                 return sd_bus_reply_method_error(s->manager->bus, c, error);
 
-        /* Update the session state file before we notify the client
-         * about the result. */
-        session_save(s);
-
         fifo_fd = session_create_fifo(s);
         if (fifo_fd < 0)
                 return fifo_fd;
 
+        /* Update the session state file before we notify the client
+         * about the result. */
+        session_save(s);
+
         p = session_bus_path(s);
         if (!p)
                 return -ENOMEM;