GNOME Bugzilla – Bug 628889
gconf initialization stuck in g_bus_get_sync()
Last modified: 2010-09-08 16:18:18 UTC
Created attachment 169576 [details] backtrace Noticed when debugging gvfsd-smb which initializes gconf in GVfsBackendSmbClass constructor (g_vfs_backend_smb_class_init()). All this looks to happen in main thread, no obvious reason for failure. Everything else (Gnome session) runs just fine, this is the only case of failure. Please see attached backtrace for details. Not even sure where to start debugging, dbus-monitor only shows usual gvfs stuff: method call sender=:1.280 -> dest=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello method call sender=:1.280 -> dest=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "type='signal',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.gtk.vfs.Daemon'" Perhaps, gvfs doesn't use GDBus yet while gconf does, mixing two different ways to reach dbus causing pain? Port to GDBus is subject to bug 622883. glib2-2.25.15-1.fc15 GConf2-2.31.91-1.fc15
Seems to be a dupe of bug 627724 - fix is simple: don't initialize stuff in class init functions. *** This bug has been marked as a duplicate of bug 627724 ***
Thanks for the hint, I've moved the GConf initialization away from g_vfs_backend_xxx_class_init() back to g_vfs_backend_xxx_init(). gvfs commit 5c060227daefafb6c0751422fa585483fc861515 Author: Tomas Bzatek <tbzatek@redhat.com> Date: Wed Sep 8 18:13:20 2010 +0200 Move GConf initialization from backend constructor Solve the deadlock described in bug 628889