-
David Zeuthen authored
If the connection to the bus is lost while a method call is ongoing, the method call does not get cancelled. Instead it just sits around until it times out. This is visible here on XO laptops when stopping the display manager during shutdown. imsettings starts sending a sync message to give up its bus name (via g_bus_unown_name()), then systemd terminates the session bus at approximately the same time. imsettings then hangs for about 20 seconds before timing out the message. http://lists.freedesktop.org/archives/dbus/2011-September/014717.html imsettings behaviour could be improved as described in that thread, but I think this is a glib bug. I've also come up with the attached patch which fixes it. Credits for the bug-fix goes to Daniel Drake <dsd@laptop.org>. The test case was written by David Zeuthen <zeuthen@gmail.com>. https://bugzilla.gnome.org/show_bug.cgi?id=660637 Signed-off-by: David Zeuthen <davidz@redhat.com>
3c4d3dec