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 597203 - Occasional hangs during playback
Occasional hangs during playback
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.22
Other Linux
: Normal major
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-10-03 12:29 UTC by Christian Kirbach
Modified: 2009-11-07 08:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
detailed stack trace in the hung state (101.59 KB, text/plain)
2009-10-03 12:30 UTC, Christian Kirbach
Details
playback hang stack trace (43.72 KB, text/plain)
2009-10-03 23:37 UTC, Christian Kirbach
Details

Description Christian Kirbach 2009-10-03 12:29:19 UTC
I am experiencing occasional hangs during playback with RB 0.12.0 (Ubuntu 9.04 x86_64)
This is not reproducable at will.
It does not seem to be relatd to a specific audio type.
Only playback gets frozen at some point, the UI continues to work. However playback won't resume at that point whatever I intend, and trying to quit RB does not work.

There is nothing unusual in the system log files to be seen.

nazgul@rivendell:/space/svn/gnome/gnome-pilot/po$ dpkg -l gst* | grep ii
ii  gstreamer-tools                            0.10.22-1                                 Tools for use with GStreamer
ii  gstreamer0.10-alsa                         0.10.22-5                                 GStreamer plugin for ALSA
ii  gstreamer0.10-esd                          0.10.14-1ubuntu0.1                        GStreamer plugin for ESD
ii  gstreamer0.10-ffmpeg                       0.10.6.2-1ubuntu2                         FFmpeg plugin for GStreamer
ii  gstreamer0.10-fluendo-mp3                  0.10.7.debian-1                           Fluendo mp3 decoder GStreamer plugin
ii  gstreamer0.10-gnomevfs                     0.10.22-5                                 GStreamer plugin for GnomeVFS
ii  gstreamer0.10-plugins-bad                  0.10.11-2ubuntu1                          GStreamer plugins from the "bad" set
ii  gstreamer0.10-plugins-bad-multiverse       0.10.11-0ubuntu1                          GStreamer plugins from the "bad" set (Multiv
ii  gstreamer0.10-plugins-base                 0.10.22-5                                 GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-apps            0.10.22-5                                 GStreamer helper programs from the "base" se
ii  gstreamer0.10-plugins-base-dbg             0.10.22-5                                 GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-good                 0.10.14-1ubuntu0.1                        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-good-dbg             0.10.14-1ubuntu0.1                        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-ugly                 0.10.10.2-1build1                         GStreamer plugins from the "ugly" set
ii  gstreamer0.10-plugins-ugly-dbg             0.10.10.2-1build1                         GStreamer plugins from the "ugly" set
ii  gstreamer0.10-plugins-ugly-multiverse      0.10.7-2                                  GStreamer plugins from the "ugly" set (Multi
ii  gstreamer0.10-pulseaudio                   0.10.14-1ubuntu0.1                        GStreamer plugin for PulseAudio
ii  gstreamer0.10-schroedinger                 1.0.5-1                                   GStreamer plugin for encoding/decoding of Di
ii  gstreamer0.10-tools                        0.10.22-1                                 Tools for use with GStreamer
ii  gstreamer0.10-x                            0.10.22-5                                 GStreamer plugins for X11 and Pango
nazgul@rivendell:/space/svn/gnome/gnome-pilot/po$ dpkg -l pulse* | grep ii
ii  pulseaudio                                 1:0.9.14-0ubuntu20.2                      PulseAudio sound server
ii  pulseaudio-dbg                             1:0.9.14-0ubuntu20.2                      PulseAudio sound server detached debugging s
ii  pulseaudio-esound-compat                   1:0.9.14-0ubuntu20.2                      PulseAudio ESD compatibility layer
ii  pulseaudio-module-gconf                    1:0.9.14-0ubuntu20.2                      GConf module for PulseAudio sound server
ii  pulseaudio-module-hal                      1:0.9.14-0ubuntu20.2                      HAL device detection module for PulseAudio s
ii  pulseaudio-module-x11                      1:0.9.14-0ubuntu20.2                      X11 module for PulseAudio sound server
ii  pulseaudio-utils                           1:0.9.14-0ubuntu20.2                      Command line tools for the PulseAudio sound 


I've attached to the process and made a detailed trace I am going to attach to the case.

(gdb) bt
  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 130
  • #1 _L_lock_102
    from /lib/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 86
  • #3 IA__g_static_rec_mutex_lock
    at /build/buildd/glib2.0-2.20.1/glib/gthread.c line 313
  • #4 post_activate
    at gstpad.c line 608
  • #5 gst_pad_activate_push
    at gstpad.c line 904
  • #6 gst_pad_activate_push
    at gstpad.c line 897
  • #7 gst_pad_set_active
    at gstpad.c line 666
  • #8 activate_pads
    at gstbin.c line 2092
  • #9 gst_iterator_fold
    at gstiterator.c line 540
  • #10 gst_bin_src_pads_activate
    at gstbin.c line 2116
  • #11 gst_bin_change_state_func
    at gstbin.c line 2303
  • #12 gst_element_change_state
    at gstelement.c line 2427
  • #13 gst_element_change_state
    at gstelement.c line 2464
  • #14 gst_element_set_state_func
    at gstelement.c line 2377
  • #15 unlink_and_dispose_stream
    at rb-player-gst-xfade.c line 1384
  • #16 rb_player_gst_xfade_close
    at rb-player-gst-xfade.c line 3343
  • #17 rb_shell_player_stop
    at rb-shell-player.c line 3191
  • #18 rb_shell_quit
    at rb-shell.c line 2570
  • #19 rb_shell_window_delete_cb
    at rb-shell.c line 1664
  • #20 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmarshalers.c line 84
  • #21 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.20.1/gobject/gclosure.c line 767
  • #22 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.20.1/gobject/gsignal.c line 3317
  • #23 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.20.1/gobject/gsignal.c line 2990
  • #24 IA__g_signal_emit
    at /build/buildd/glib2.0-2.20.1/gobject/gsignal.c line 3037
  • #25 gtk_widget_event_internal
    at /build/buildd/gtk+2.0-2.16.1/gtk/gtkwidget.c line 4761
  • #26 IA__gtk_main_do_event
    at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c line 1534
  • #27 gdk_event_dispatch
    at /build/buildd/gtk+2.0-2.16.1/gdk/x11/gdkevents-x11.c line 2364
  • #28 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.20.1/glib/gmain.c line 1814
  • #29 g_main_context_iterate
    at /build/buildd/glib2.0-2.20.1/glib/gmain.c line 2448
  • #30 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.20.1/glib/gmain.c line 2656
  • #31 IA__gtk_main
    at /build/buildd/gtk+2.0-2.16.1/gtk/gtkmain.c line 1205
  • #32 main
    at main.c line 336

Comment 1 Christian Kirbach 2009-10-03 12:30:58 UTC
Created attachment 144662 [details]
detailed stack trace in the hung state
Comment 2 Christian Kirbach 2009-10-03 12:38:32 UTC
Hmm so this looks like gstreamer to me, post_activate() is waiting for a mutex lock forever ...
Comment 3 Jonathan Matthew 2009-10-03 13:20:54 UTC
It might be worth seeing if you can reproduce this with the updated rhythmbox packages you can find here: https://launchpad.net/~jmatthew/+archive/ppa
Otherwise, if you can identify the files (or type of file) this happens with, that'd probably help too.  It's happening when shutting down the playback pipeline for a track that has just finished, not when starting a new one.
Comment 4 Tim-Philipp Müller 2009-10-03 13:54:54 UTC
Does this code use decodebin2 or playbin2?

There is a known issue with decodebin2 and container formats which have an additional ID3 or APE tag (e.g. ID3 tag + quicktime/ogg/asf). I think those hung slightly differently though, and at startup, not on shutdown.

Could you try and find one of the files you're having this problem with?
Comment 5 Jonathan Matthew 2009-10-03 14:04:56 UTC
Rhythmbox was still using decodebin in 0.12.0.
Comment 6 Christian Kirbach 2009-10-03 17:52:28 UTC
It might be worth noting that crossfading is enabled.

As it  only happens, say, every few hours it is rather difficult to reproduce.
I'll attempt to find out media file types causing it, and eventually try the PPA. Then again the next distro release upgrade is at hand...
Comment 7 Christian Kirbach 2009-10-03 18:56:08 UTC
OK I tried very hard and triggered it two times, it hung each time a song ended, as you predicted. In both cases the file is of type

Audio file with ID3 version 2.3, MP3 encoding

but it cannot be triggered every time with those files. This looks like some internal gstreamer race condition or so to me.

Will switch to the PPA now.
Comment 8 Christian Kirbach 2009-10-03 23:37:10 UTC
OK I also see it with rhythmbox 0.12.4

this time the file was of type

MPEG ADTS, layer III, v1, 160 kbps, 44.1 kHz, Stereo

will attach the trace
Comment 9 Christian Kirbach 2009-10-03 23:37:48 UTC
Created attachment 144690 [details]
playback hang stack trace
Comment 10 Sebastian Dröge (slomo) 2009-10-08 11:33:30 UTC
Is this reproducible without the crossfading stuff too?Is it reproducible with totem or gst-launch-0.10 playbin2 uri=file:///path/to/file ?
Comment 11 Christian Kirbach 2009-10-11 21:19:41 UTC
It is reproducible with the crossfading turned off.


I have just triggered 50 song changes in totem in a row (by fast-forwarding to a few seconds before the song end) without any problem. It looks to me like totem is not affected, but I will continue observing the behaviour of totem as I think it is rather premature to draw any conclusions.
Comment 12 Eamonn Sullivan 2009-10-22 11:26:49 UTC
I'm affected by this as well. If it helps, I'm seeing the issue during *transitions* from mp3 to ogg or vice versa. I filed a report in launchpad here: 

https://bugs.launchpad.net/ubuntu/+source/gst-plugins-good0.10/+bug/456273

Playback in Rhythmbox stops just before switching from mp3 to ogg. I can press Next and Prev and the songs starts playing without issue. However, at the end of the ogg file, the next song (usually an mp3) also won't play and I have to do that Next/Prev thing again. Going from mp3 to mp3 seems to work fine. I'm not sure, but it could be during transitions from one type to another, because I mostly just have mp3 and ogg files.
Comment 13 Christian Kirbach 2009-11-07 00:58:37 UTC
I was not able to trigger this behaviour when using totem.

Also, I am running Ubuntu 9.10 since about 10 days. I have not experienced a single hang again, and I am confident to claim that whatever cause I suffered from, it is no longer existing in the updated packages.

ii  gstreamer-tool 0.10.25-2      Tools for use with GStreamer

...

ii  rhythmbox      0.12.5-0ubuntu music player and organizer for GNOME
Comment 14 Sebastian Dröge (slomo) 2009-11-07 08:25:56 UTC
Ok, then let's close it for now :)