Description of problem: Most/all gnome applications hang in dbus-related code when eg. opening file chooser. This happens when the application is run in su-ed session, eg su otheruser firefox. It first began to happen after recent upgrade (dbus-x11.i386 1.0.1-2?). Version-Release number of selected component (if applicable): dbus-glib-0.70-5.fc6 dbus-x11-1.0.1-2.fc6 dbus-python-0.70-6 dbus-1.0.1-2.fc6 How reproducible: Always. Steps to Reproduce: 1. Log in graphically as userA. 2. Execute su userB firefox 3. Try saving a page. Actual results: firefox will stop responding. Connecting with a debugger will reveal following trace: 0x00439402 in __kernel_vsyscall () (gdb) where #0 0x00439402 in __kernel_vsyscall () #1 0x41f7098e in __lll_mutex_lock_wait () from /lib/libpthread.so.0 #2 0x41f6c7fc in _L_mutex_lock_85 () from /lib/libpthread.so.0 #3 0x41f6c33d in pthread_mutex_lock () from /lib/libpthread.so.0 #4 0x0070afdd in dbus_g_object_path_get_g_type () from /usr/lib/libdbus-glib-1.so.2 #5 0x00b518cf in dbus_timeout_get_enabled () from /lib/libdbus-1.so.3 #6 0x00b3a94d in dbus_bus_get_unix_user () from /lib/libdbus-1.so.3 #7 0x00b3e60d in dbus_connection_set_watch_functions () from /lib/libdbus-1.so.3 #8 0x00b4020d in dbus_connection_open () from /lib/libdbus-1.so.3 #9 0x00b4c5a1 in dbus_pending_call_block () from /lib/libdbus-1.so.3 #10 0x00b3f721 in dbus_connection_send_with_reply_and_block () from /lib/libdbus-1.so.3 #11 0x00b3ae1e in dbus_bus_register () from /lib/libdbus-1.so.3 #12 0x00b3b1d6 in dbus_bus_register () from /lib/libdbus-1.so.3 #13 0x00ca704b in gnome_vfs_daemon_message_iter_get_file_info () from /usr/lib/libgnomevfs-2.so.0 #14 0x00cc780e in gnome_vfs_volume_monitor_client_shutdown_private () from /usr/lib/libgnomevfs-2.so.0 #15 0x00cc73c9 in gnome_vfs_volume_monitor_client_get_type () from /usr/lib/libgnomevfs-2.so.0 #16 0x421777ba in g_type_create_instance () from /lib/libgobject-2.0.so.0 #17 0x4215f0b2 in g_object_set () from /lib/libgobject-2.0.so.0 #18 0x4215cd0b in g_object_newv () from /lib/libgobject-2.0.so.0 #19 0x4215d86e in g_object_new_valist () from /lib/libgobject-2.0.so.0 #20 0x4215da20 in g_object_new () from /lib/libgobject-2.0.so.0 #21 0x00cc8184 in gnome_vfs_volume_monitor_unref () from /usr/lib/libgnomevfs-2.so.0 #22 0x00cc821a in gnome_vfs_get_volume_monitor () from /usr/lib/libgnomevfs-2.so.0 #23 0x00b8335d in fs_module_create () from /usr/lib/gtk-2.0/2.10.0/filesystems/libgnome-vfs.so #24 0x421777ba in g_type_create_instance () from /lib/libgobject-2.0.so.0 #25 0x4215f0b2 in g_object_set () from /lib/libgobject-2.0.so.0 #26 0x4215cd0b in g_object_newv () from /lib/libgobject-2.0.so.0 #27 0x4215d86e in g_object_new_valist () from /lib/libgobject-2.0.so.0 #28 0x4215da20 in g_object_new () from /lib/libgobject-2.0.so.0 #29 0x00b806bc in gtk_file_system_gnome_vfs_new () from /usr/lib/gtk-2.0/2.10.0/filesystems/libgnome-vfs.so #30 0x00b806f7 in fs_module_create () from /usr/lib/gtk-2.0/2.10.0/filesystems/libgnome-vfs.so #31 0x047e737d in gtk_file_selection_set_filename () from /usr/lib/libgtk-x11-2.0.so.0 #32 0x047e7503 in gtk_file_system_create () from /usr/lib/libgtk-x11-2.0.so.0 #33 0x047d80c4 in gtk_file_chooser_button_new () from /usr/lib/libgtk-x11-2.0.so.0 #34 0x4215f28c in g_object_set () from /lib/libgobject-2.0.so.0 #35 0x047dba31 in gtk_file_chooser_button_new () from /usr/lib/libgtk-x11-2.0.so.0 #36 0x4215cd0b in g_object_newv () from /lib/libgobject-2.0.so.0 Expected results: File selection dialog should pop up.
Is more information needed? Or nobody uses Linux any more in a multiuser mode and this bug is considered a low priority?
Actually I know exactly what is happening and have been working upstream on it so the sarcasm is not apreciated. Part of the fix revolves around dbus-glib using the default recursive thread handler. What I don't understand is why other apps like gedit aren't effected as they seem to handle the issue fine.
I did not mean to offend. For what is worth, my gedit (stock FC6) hangs when I click on "Open" button with a trace similar to the one above: #0 0x008b0402 in __kernel_vsyscall () #1 0x41f7098e in __lll_mutex_lock_wait () from /lib/libpthread.so.0 #2 0x41f6c7fc in _L_mutex_lock_85 () from /lib/libpthread.so.0 #3 0x41f6c33d in pthread_mutex_lock () from /lib/libpthread.so.0 #4 0x00365fdd in dbus_g_object_path_get_g_type () from /usr/lib/libdbus-glib-1.so.2 #5 0x00db08cf in dbus_timeout_get_enabled () from /lib/libdbus-1.so.3 #6 0x00d9994d in dbus_bus_get_unix_user () from /lib/libdbus-1.so.3 #7 0x00d9d60d in dbus_connection_set_watch_functions () from /lib/libdbus-1.so.3 #8 0x00d9f2c9 in dbus_connection_open () from /lib/libdbus-1.so.3 #9 0x00dab5a1 in dbus_pending_call_block () from /lib/libdbus-1.so.3 #10 0x00d9e721 in dbus_connection_send_with_reply_and_block () from /lib/libdbus-1.so.3 #11 0x00d99e1e in dbus_bus_register () from /lib/libdbus-1.so.3 #12 0x00d9a1d6 in dbus_bus_register () from /lib/libdbus-1.so.3 #13 0x00f0b04b in gnome_vfs_daemon_message_iter_get_file_info () from /usr/lib/libgnomevfs-2.so.0 #14 0x00f2b822 in gnome_vfs_volume_monitor_client_shutdown_private () from /usr/lib/libgnomevfs-2.so.0 #15 0x00f2b3dd in gnome_vfs_volume_monitor_client_get_type () from /usr/lib/libgnomevfs-2.so.0 #16 0x421777ba in g_type_create_instance () from /lib/libgobject-2.0.so.0 #17 0x4215f0b2 in g_object_set () from /lib/libgobject-2.0.so.0 #18 0x4215cd0b in g_object_newv () from /lib/libgobject-2.0.so.0 #19 0x4215d86e in g_object_new_valist () from /lib/libgobject-2.0.so.0
Please upgrade to the latest D-Bus. This will fix the gedit problem
Chris, does firefox invoke the filedialog, dbus or gnome-vfs in wierd ways? i.e. does it not get the bus address through the standard mechanism? The only way I can see this being an issue is if firefox is reading DBUS_SESSION_BUS_ADDRESS directly. When running as a different user in D-Bus >= 1.0.0 dbus will autolaunch a bus and set an xselection which is passed back to the library.
a updated dbus-glib-0.70-6 should show up in testing which partially fixes this issue by enabling recursive locks which makes the deadlock go away. There are still some issues with the way firefox invokes the file dialog.
I can confirm that dbus-glib-0.70-6 fixes the problem for me with several applications (I had a very similar problem when using virt-manager after "su") on FC6 x86_64.
FWIW, dbus-glib 0.70-6.fc6 fixes the problem for me, including, but not limited to, firefox! Thanks!
I guess this report can be closed now...