dbus_shutdown runtime checks
Havoc Pennington
hp at redhat.com
Fri Nov 24 02:13:16 PST 2006
10function wrote:
> But replacing the session bus(DBUS_BUS_SESSION) with system bus (DBUS_BUS_SYSTEM) leads to the following warning :
> process 8123: dbus_shutdown() called but connections were still live. This probably means the application did not drop allits references to bus connections.
> D-Bus not built with -rdynamic so unable to print a backtrace
> Abandon
>
> I can't figure out why , Is there something i missed ?
Thanks for the small compilable test case. It appears the problem is
that in dbus-connection.c if a bus address has no "guid" property (as
the default system bus address does not), we don't record the connection
in the hash table of shared connections. Thus on shutdown in
dbus-connection.c:shared_connections_shutdown we don't disconnect the
connection, resulting in a leak.
The fix is pretty simple; keep a list of shared connections that lack a
guid and be sure each shared connection is either in the list or in the
hash.
> On the other hand, i tried to build with the backtrace mechanism as proposed in the error message but my attemps failled. Could you explain how this could be done ? Could it be added to the configure options in a future release ?
It should happen automatically. If you're on a platform where it should
work and it doesn't, perhaps the configure check is broken in some way.
Let us know your platform details.
Havoc
More information about the dbus
mailing list