Bug#694340: libgconf2-4: libgconf built with the dbus backend requires dbus-glib to be initialized with threading
Chow Loong Jin
hyperair at debian.org
Sun Nov 25 23:49:57 UTC 2012
On 26/11/2012 05:50, Josselin Mouette wrote:
> severity 694340 serious
> thanks
>
> Hi,
>
> Le lundi 26 novembre 2012 à 01:36 +0800, Chow Loong Jin a écrit :
>>
>> + /* Initialize DBus Glib for multithreading -- this fixes race conditions when
>> + multi-threaded applications use gconf. Additionally, although the API
>> + documentation says that dbus_g_thread_init() may only be called once, it is
>> + actually really a wrapper for dbus_threads_init_default() which can be
>> + called as many times as necessary. */
>
> Thanks for the patch, but I’m not fond of violating the API just because
> it works for the moment. This is precisely the kind of code that can
> trigger later the kind of bug you are trying to fix.
>
> OTOH the risk is low, since dbus-glib is a dying library.
>
> Maybe we should just port GConf to GDBus instead, which doesn’t have
> this issue, but this is not a small change.
That was mentioned in https://bugzilla.gnome.org/show_bug.cgi?id=683830, but
given that it isn't a small change, it's probably not going to happen for
Wheezy. Can we slap a downstream patch in the meantime? This bug causes Banshee
to crash pretty reliably.
I recall some other C# applications being affected as well, and forcing all of
them to add a dependency on dbus-glib to call dbus_g_thread_init seems wrong,
especially when dbus usage is supposed to be an implementation detail in
libgconf, and C# programs in general use DBus# which is a complete
reimplementation of libdbus.
--
Kind regards,
Loong Jin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20121126/6b8c2d07/attachment-0002.pgp>
More information about the pkg-gnome-maintainers
mailing list