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 260b088433385187c7afa1e59b4cc5aeaff351ed..791d2f5ab0e4186de024a635c11b5bd8a446db10 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;