Crash when using HAL in multiple libraries

William Jon McCann mccann at jhu.edu
Wed Jun 7 07:39:23 PDT 2006


Hi David,

David Zeuthen wrote:
> On Tue, 2006-06-06 at 23:53 +0100, Bastien Nocera wrote:
> 
>>Heya,
>>
>>Rhythmbox has some problems running on my system, when a CD is in the
>>drive. That's because Rhythmbox itself, and 2 libraries it depends on
>>(libnautilus-burn and libtotemplparser) rely on HAL themselves.
>>
>>#1  0x0019d4a7 in dbus_connection_dispatch () from /lib/libdbus-1.so.2
>>#2  0x00a9210d in dbus_server_setup_with_g_main ()
>>from /usr//lib/libdbus-glib-1.so.2
>>#3  0x00c1109d in g_main_context_dispatch ()
>>from /usr//lib/libglib-2.0.so.0
>>#4  0x00c1432f in g_main_context_check ()
>>from /usr//lib/libglib-2.0.so.0
>>#5  0x00c146d9 in g_main_loop_run () from /usr//lib/libglib-2.0.so.0
>>#6  0x029d2594 in gtk_main () from /usr//lib/libgtk-x11-2.0.so.0
>>#7  0x0806d2f5 in main (argc=1, argv=0xbfd88f64) at main.c:375
>>
>>No asserts, or anything like that. I was wondering whether someone could
>>take a quick look at this bit of code from Totem's playlist parser and
>>let me know whether I'm doing something plain stupid with HAL. I mostly
>>just copied code from the other 2 programs involved, which might explain
>>the problems.
> 
> 
> You might want to try to use dbus_bus_get_private() instead of
> dbus_bus_get() in your libraries. Notwithstanding, this should work so
> it may be a bug in libhal or libdbus (more likely it's libhal). But it
> would be interesting to see if using _private() makes a difference.

Nice, I didn't know about dbus_bus_get_private.  Just to clarify... In 
this case, unlike dbus_bus_get, the caller owns the reference to the 
connection.  Should this ownership transfer to libhal when 
libhal_ctx_set_dbus_connection is used?  In other words who should be 
responsible for unreffing it?

Thanks,
Jon


More information about the hal mailing list