Crash in _dbus_connection_block_pending_call
John (J5) Palmieri
johnp at redhat.com
Tue Jun 13 18:37:30 PDT 2006
On Tue, 2006-06-13 at 09:16 +0200, Timo Hoenig wrote:
> Hi,
>
> On Fri, 2006-06-09 at 11:43 -0400, John (J5) Palmieri wrote:
>
> > Ok, we are getting somewhere. Do you know if your distro compiles with
> > --enable-checks? I would like you to compile dbus with the distro's
> > flags and add -O0 -ggdb3 so we get an even better backtrace.
>
> Looks like the connection is gone.
>
> #7 0xb7eb2a08 in check_for_reply_and_update_dispatch_unlocked (pending=0x80984c0) at dbus-connection.c:2544
> reply = (DBusMessage *) 0xb7c6e188
> connection = (DBusConnection *) 0x0
> #8 0xb7eb2c4e in _dbus_connection_block_pending_call (pending=0x80984c0) at dbus-connection.c:2650
> connection = (DBusConnection *) 0x8098050
>
> Complete logs are up [1].
>
> Thanks,
>
> Timo
>
> [1] NM logs when crashing (with -O0 and -ggdb3)
> http://nouse.net/misc/nm-trace-verbose-O0-ggdb3-{a,b}
Ok, so I think I see whats happening now. The pending call is most
likely finished in another thread by the time it reaches
check_for_reply_and_update_dispatch_unlocked. The connection itself is
locked but not the pending call. I think checking for connection ==
NULL and returning if it is will fix the issue. Then again it might
cause messages to be dropped. I'm not totally sure.
--
John (J5) Palmieri <johnp at redhat.com>
More information about the dbus
mailing list