Deadlock in D-Bus when using gtk_dialog_run

Havoc Pennington hp at redhat.com
Thu Apr 7 18:45:31 PDT 2005


On Wed, 2005-04-06 at 11:59 -0400, John (J5) Palmieri wrote:
> gnome-volume-manager is deadlocking dbus when trying to display the
> import photo dialog.  Attached is the relevant debugging output - a gdb
> backtrace, relevant output of gnome-volume-manager with DBUS_VERBOSE
> turned on and the output of top.
> 

The problem is that dispatch is called recursively, and it isn't meant
to be.

I thought this wasn't possible with the GLib main loop since the
dispatch stuff isn't G_SOURCE_CAN_RECURSE. However, I see that the IO
handler also calls dispatch.

If you can reliably reproduce the bug, try this: remove
dbus_connection_dispatch() calls from io_handler_dispatch in
dbus-gmain.c

I can imagine ways to just remove the no-recursive-dispatch restriction
but they all seem sort of complicated, so if the simple fix works we
should go with it for now I think.

Havoc




More information about the dbus mailing list