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 606881 - Unreleased mutex lock
Unreleased mutex lock
Status: RESOLVED OBSOLETE
Product: rhythmbox
Classification: Other
Component: general
0.12.x
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-01-13 17:25 UTC by Leonid A. Movsesjan
Modified: 2010-08-06 20:26 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Leonid A. Movsesjan 2010-01-13 17:25:04 UTC
I'm using Rythmbox on Ubuntu 9.10 Kermic with version 0.12.5-0ubuntu5. After some time of working application hungs and uses 100% processor time ('top' result):

28421 lmovsesj  20   0  246m  49m  22m S  100  2.5  89:43.61 rhythmbox

strace on it shows the following results:

$ sudo strace -p 28421
Process 28421 attached - interrupt to quit
futex(0xb5fc7c90, FUTEX_WAIT_PRIVATE, 2, NULL

If I attached with gdb, I see the following backtrace (first 10 frames):

  • #0 __kernel_vsyscall
  • #1 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S line 142
  • #2 _L_lock_752
    from /lib/tls/i686/cmov/libpthread.so.0
  • #3 __pthread_mutex_lock
    at pthread_mutex_lock.c line 61
  • #4 gst_alsasink_reset
    at gstalsasink.c line 942
  • #5 gst_audioringbuffer_pause
    at gstaudiosink.c line 516
  • #6 gst_ring_buffer_pause_unlocked
    at gstringbuffer.c line 1189
  • #7 gst_ring_buffer_pause
    at gstringbuffer.c line 1232
  • #8 gst_base_audio_sink_change_state
    at gstbaseaudiosink.c line 1799
  • #9 gst_element_change_state
    at gstelement.c line 2548
  • #10 gst_element_set_state_func
    at gstelement.c line 2504

Helps only Rhythmbox reboot.
Comment 1 Jonathan Matthew 2010-01-16 07:29:07 UTC
Please provide a full backtrace for all threads.
Comment 2 Thomas 2010-02-08 01:37:04 UTC
Get the same hangs of rhythmbox, also on ubuntu 9.10 karmic, having installed
the linux-backports-modules-karmic backport packages.
 
(gdb) thread apply all bt 


Comment 3 Jonathan Matthew 2010-02-08 02:07:38 UTC
Your backtrace is missing debug symbols for rhythmbox, glib, and half of gstreamer (?), and it seems to be using both alsa and pulseaudio in the same process, which is pretty weird.  What output do you get from 'gconftool-2 -g /system/gstreamer/0.10/default/musicaudiosink' ?
Comment 4 Thomas 2010-02-08 02:49:16 UTC
(In reply to comment #3)
> Your backtrace is missing debug symbols for rhythmbox, glib, and half of
> gstreamer (?), 

Well, that old problem. Even though I do have debug packages installed and those non-stripped libraries are installed and present in /usr/lib/debug/..., gdb does not pick them up automatically. When I use add-symbol-file for libglib, for instance, it would show me symbols in the backtrace for some function calls and some not, i.e. show those ???

> and it seems to be using both alsa and pulseaudio in the same
> process, which is pretty weird.  What output do you get from 'gconftool-2 -g
> /system/gstreamer/0.10/default/musicaudiosink' ?

alsasink
Comment 5 Thomas 2010-02-08 03:01:22 UTC
(In reply to comment #3)
> Your backtrace is missing debug symbols for rhythmbox, glib, and half of
> gstreamer (?), and it seems to be using both alsa and pulseaudio in the same
> process, which is pretty weird.  What output do you get from 'gconftool-2 -g
> /system/gstreamer/0.10/default/musicaudiosink' ?

I was using firefox at the same time, which according to audio preferences, was using the alsa plugin.
Comment 6 Jonathan Matthew 2010-02-08 03:03:50 UTC
That sounds like a problem with your version of gdb or with the debug packages.  It may also have something to do with mixing your own builds of libraries with the system libraries.

Try changing that gconf key to 'autoaudiosink'.
Comment 7 Thomas 2010-02-08 03:27:18 UTC
(In reply to comment #4)
> (In reply to comment #3)
>  What output do you get from 'gconftool-2 -g
...
> > /system/gstreamer/0.10/default/musicaudiosink' ?
> 
> alsasink

Followed http://pulseaudio.org/wiki/PerfectSetup#Audacious to switch from
alsa to pulseaudio:

gconftool -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
gconftool -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc

Maybe that helps.
Comment 8 Thomas 2010-02-08 03:30:09 UTC
(In reply to comment #6)
> That sounds like a problem with your version of gdb or with the debug packages.
>  It may also have something to do with mixing your own builds of libraries with
> the system libraries.
> 
> Try changing that gconf key to 'autoaudiosink'.

Ok. done.
Comment 9 Tobias Mueller 2010-08-06 12:51:14 UTC
And is this still an issue?
Comment 10 Thomas 2010-08-06 19:34:04 UTC
(In reply to comment #9)
> And is this still an issue?

I built and now run the latest version of rhythmbox, 0.13, on ubuntu 9.10,
karmic, and did not have hangs lately, though I haven't used the app to
often, lately.
But I still get those crashes intermittently when I use the mouse wheel to change volume or to backtrack/advance the track being played.
Comment 11 Leonid A. Movsesjan 2010-08-06 20:10:59 UTC
(In reply to comment #9)
> And is this still an issue?

Now I'm using Rhythmbox 0.12.8-0ubuntu7 on Ubuntu 10.04.1 and don't have this problem.
Comment 12 Tobias Mueller 2010-08-06 20:26:03 UTC
Closing as OBSOLETE as per last comment.