gdbusnameowning: Don't spew an error if we're releasing a name due to closing
authorColin Walters <walters@verbum.org>
Fri, 19 Jul 2013 15:50:35 +0000 (11:50 -0400)
committerColin Walters <walters@verbum.org>
Fri, 19 Jul 2013 21:49:47 +0000 (17:49 -0400)
The default GNOME 3.10 login process right now has gdm spawn a session
for the login screen, retaining the X server, but closing the session
bus.  Right now in this scenario many GNOME components such as
gnome-settings-daemon attempt to "clean up" on shutdown by releasing
their owned names.

But they're shutting down because the session bus went away, so
releasing the name is pointless, and presently spews an error into the
journal.

This patch avoids that error spew, which helps system administrators
find *real* problems.

https://bugzilla.gnome.org/show_bug.cgi?id=704567

gio/gdbusnameowning.c

index 260b088..791d2f5 100644 (file)
@@ -899,7 +899,9 @@ g_bus_unown_name (guint owner_id)
   if (client != NULL)
     {
       /* Release the name if needed */
-      if (client->needs_release && client->connection != NULL)
+      if (client->needs_release &&
+          client->connection != NULL &&
+          !g_dbus_connection_is_closed (client->connection))
         {
           GVariant *result;
           GError *error;