After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 692374 - Unmanaged crash (SIGABRT) with libdbus 1.6.4 and gconf
Unmanaged crash (SIGABRT) with libdbus 1.6.4 and gconf
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: general
2.6.0
Other Linux
: High major
: ---
Assigned To: Banshee Maintainers
Banshee Maintainers
: 686141 688031 688034 688845 692920 695975 721582 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-01-23 11:08 UTC by javiermon
Modified: 2014-03-18 10:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
banshee-avoid-dbus-race.patch (1.59 KB, patch)
2013-02-26 17:54 UTC, Hans Petter Jansson
needs-work Details | Review
Avoid race when using GConf and DBus with threads (2.47 KB, patch)
2013-04-01 18:16 UTC, Kalev Lember
committed Details | Review
Proposed subsequent patch (2.60 KB, patch)
2014-03-15 16:24 UTC, Andrés G. Aragoneses (IRC: knocte)
committed Details | Review

Description javiermon 2013-01-23 11:08:49 UTC
Hi

Banshee crashes with libdbus >= 1.6.4.

I've already reported this on Fedora's bugzilla
https://bugzilla.redhat.com/show_bug.cgi?id=867133

but I think here would get better attention. Sorry if this was already filed, couldn't find an appropiate duplicate.

This seems to be related to this other bug with gconf:
https://bugzilla.gnome.org/show_bug.cgi?id=683830

and this is also happening in other distros like arch:
https://bugs.archlinux.org/task/32927

Ubuntu seems to have a patch but upstream (and debian) doesn't like it at all and they won't accept it.
https://bugs.launchpad.net/ubuntu/+source/banshee/+bug/1048341

I can reproduce the crash almost always (check the fedora bugzilla bug report for a full stack trace). This bug makes banshee unusable and I personally don't like the idea of switching music player to something else.

Thanks,
Comment 1 Hans Petter Jansson 2013-02-26 17:54:41 UTC
Created attachment 237463 [details] [review]
banshee-avoid-dbus-race.patch

According to reports, this patch fixes the problem in openSUSE. It needs a little work to be useful upstream - like a DllMap to not break it on Windows and MacOS. I'm not sure if I'm making the dbus_g_thread_init() call from the best place either.
Comment 2 Andrés G. Aragoneses (IRC: knocte) 2013-03-16 20:52:42 UTC
*** Bug 695975 has been marked as a duplicate of this bug. ***
Comment 3 Andrés G. Aragoneses (IRC: knocte) 2013-03-16 20:59:24 UTC
*** Bug 686141 has been marked as a duplicate of this bug. ***
Comment 4 Kalev Lember 2013-04-01 18:16:29 UTC
Looks like the Banshee windows installer is shipping a libdbus-glib-1-2.dll which is what we should import in the code, and then use a dllmap to adjust it for other platforms.

Attaching an updated patch.
Comment 5 Kalev Lember 2013-04-01 18:16:58 UTC
Created attachment 240321 [details] [review]
Avoid race when using GConf and DBus with threads

GConf causes us to make indirect calls to libdbus from multiple threads,
resulting in crashes if left uninitialized. As a workaround, we initialize
dbus-glib for multithreading.
Comment 6 Bertrand Lorentz 2013-04-07 13:49:00 UTC
Comment on attachment 240321 [details] [review]
Avoid race when using GConf and DBus with threads

I've committed a modified version of that patch in git master and the stable-2.6 branch:
https://git.gnome.org/browse/banshee/commit/?id=f9b90f3e

The change is to only enable the workaround if dbus-glib is available, otherwise it would cause crashed on startup.

Packagers:
To have this fix enabled in distro packages, you should add a build dependency on dbus-glib (or rather its development package, if there is one).
Comment 7 Bertrand Lorentz 2013-04-07 13:50:03 UTC
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.

Please note the comment above: this fix requires dbus-glib to be enabled.
Comment 8 Bertrand Lorentz 2013-04-14 16:30:50 UTC
*** Bug 692920 has been marked as a duplicate of this bug. ***
Comment 9 Bertrand Lorentz 2013-04-14 18:41:53 UTC
*** Bug 688845 has been marked as a duplicate of this bug. ***
Comment 10 Bertrand Lorentz 2013-04-14 18:45:23 UTC
*** Bug 688034 has been marked as a duplicate of this bug. ***
Comment 11 Bertrand Lorentz 2013-04-14 18:48:28 UTC
*** Bug 688031 has been marked as a duplicate of this bug. ***
Comment 12 Andrés G. Aragoneses (IRC: knocte) 2014-01-05 16:15:45 UTC
*** Bug 721582 has been marked as a duplicate of this bug. ***
Comment 13 Andrés G. Aragoneses (IRC: knocte) 2014-02-08 12:58:16 UTC
(In reply to comment #6)
> Packagers:
> To have this fix enabled in distro packages, you should add a build dependency
> on dbus-glib (or rather its development package, if there is one).

Bertrand, given that some packagers have ignored this (i.e. openSUSE AFAIK, as my brother uses this distro and is telling me about crashes, and there's also other bug reports about this, AFAIR), how can we improve this situation? Cannot we "fail faster", throwing an exception at banshee startup if Banshee was not built properly with this dependency?
Comment 14 Andrés G. Aragoneses (IRC: knocte) 2014-03-15 16:24:42 UTC
Created attachment 272022 [details] [review]
Proposed subsequent patch

(In reply to comment #13)
> (In reply to comment #6)
> > Packagers:
> > To have this fix enabled in distro packages, you should add a build dependency
> > on dbus-glib (or rather its development package, if there is one).
> 
> Bertrand, given that some packagers have ignored this (i.e. openSUSE AFAIK, as
> my brother uses this distro and is telling me about crashes, and there's also
> other bug reports about this, AFAIR), how can we improve this situation? Cannot
> we "fail faster", throwing an exception at banshee startup if Banshee was not
> built properly with this dependency?

I had not looked at Bertrand's patch before, so my question above was kind of dumb. Now that I looked at it, this is the proposed patch that would be equivalent to my suggestion. Ideally we would commit it to master just before the 2.9.1 release, then merge the gsettings work, and then revert this workaround altogether (backporting this patch to stable-2.6 would also be good in case we do a 2.6.3 in the future).

Please let me know what you think! Thanks
Comment 15 Bertrand Lorentz 2014-03-17 19:31:27 UTC
Review of attachment 272022 [details] [review]:

Thanks for the patch.

Having a mandatory dbus-glib-1 dependency might be overkill for distros that have fixed the issue somewhere else in the stack, but I guess it won't be much of a problem for them.
And looking at the number of duplicates, it looks like it would be worth it.

So OK for me to commit it.
Comment 16 Andrés G. Aragoneses (IRC: knocte) 2014-03-18 10:24:55 UTC
Comment on attachment 272022 [details] [review]
Proposed subsequent patch

Thanks Bertrand.

This patch was lacking two things:
- Removing another HAVE_DBUS_GLIB usage in configure.ac.
- Detailing the new dependency on README and create-release-notes.

So I addressed those two things above and committed.

Now let's work on the 2.9.1 release \o/