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 560371 - Rhythmbox full freeze on pause, unpause of an internet radio station
Rhythmbox full freeze on pause, unpause of an internet radio station
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Internet Radio
0.11.x
Other All
: Normal critical
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-11-11 16:37 UTC by Sean
Modified: 2008-12-16 12:28 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sean 2008-11-11 16:37:01 UTC
Please describe the problem:
Rhythmbox freezes when I pause and then unpause this SomaFM station. Using Ubuntu 8.10 and Rhythmbox 0.11.6svn20081008-0ubuntu4. http://somafm.com/digitalis.pls

I'm attaching the debug output from 'rhythmbox -d'.

Backtrace from coredump generated by SIGABRT:
  • #0 __kernel_vsyscall
  • #1 __lll_lock_wait
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 _L_lock_89
    from /lib/tls/i686/cmov/libpthread.so.0
  • #3 pthread_mutex_lock
    from /lib/tls/i686/cmov/libpthread.so.0
  • #4 g_static_rec_mutex_lock
    from /usr/lib/libglib-2.0.so.0
  • #5 get_times_and_stream
    at rb-player-gst-xfade.c line 2485
  • #6 rb_player_gst_xfade_get_time
    at rb-player-gst-xfade.c line 3621
  • #7 rb_player_get_time
    at rb-player.c line 479
  • #8 rb_shell_player_sync_with_source
    at rb-shell-player.c line 2988
  • #9 new_playing_stream_idle_cb
    at rb-shell-player.c line 3487
  • #10 ??
    from /usr/lib/libglib-2.0.so.0
  • #11 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #12 ??
    from /usr/lib/libglib-2.0.so.0
  • #13 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #14 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #15 main

Comment 1 Jonathan Matthew 2008-11-12 02:40:23 UTC
Please provide the stack trace for all threads ('thread apply all bt' in gdb) - the information from the main thread isn't enough to identify the problem.

How exactly are you pausing playback?
Comment 2 Sean 2008-11-12 17:59:44 UTC
I am pausing and resuming playback from the tray icon. Here is the backtraces:

Thread 6 (process 17360)

  • #0 __kernel_vsyscall
  • #1 __lll_lock_wait
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 _L_lock_89
    from /lib/tls/i686/cmov/libpthread.so.0
  • #3 pthread_mutex_lock
    from /lib/tls/i686/cmov/libpthread.so.0
  • #4 g_static_rec_mutex_lock
    from /usr/lib/libglib-2.0.so.0
  • #5 _threads_enter
    at rb-util.c line 351
  • #6 info_available_cb
    at rb-iradio-source.c line 1064
  • #7 rb_marshal_VOID__POINTER_INT_POINTER
    at rb-marshal.c line 1260
  • #8 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #9 ??
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #12 _rb_player_emit_info
    at rb-player.c line 549
  • #13 process_tag
    at rb-player-gst-xfade.c line 1472
  • #14 structure_foreach_wrapper
    at gsttaglist.c line 908
  • #15 gst_structure_foreach
    at gststructure.c line 913
  • #16 gst_tag_list_foreach
    at gsttaglist.c line 933
  • #17 rb_player_gst_xfade_bus_cb
    at rb-player-gst-xfade.c line 1625
  • #18 start_sink
    at rb-player-gst-xfade.c line 2715
  • #19 rb_player_gst_xfade_play
    at rb-player-gst-xfade.c line 3262
  • #20 rb_player_play
    at rb-player.c line 350
  • #21 rb_shell_player_open_playlist_url
    at rb-shell-player.c line 762
  • #22 open_location_thread
    at rb-shell-player.c line 1542
  • #23 ??
    from /usr/lib/libglib-2.0.so.0
  • #24 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #25 clone
    from /lib/tls/i686/cmov/libc.so.6

Comment 3 Mark Blakeney 2008-11-14 03:03:42 UTC
I'm a new gnome + rhythmbox user and using the same Ubuntu 8.10 and Rhythmbox 0.11.6svn20081008-0ubuntu4 as the OP. Not confident to raise a new bug but also see problems with rhythmbox and internet radio. Sometimes the play/pause option on the systray icon gets out of sync with the state. I.e can be playing an internet radio station but the icon and rhythmbox indicates it is not playing.

Also notice that rhythmbox seems to use an extraordinary amount of memory when playing and it seems to keep increasing (i.e. memory leak?). I've never let it get too large but rhythmbox is easily the largest user of memory for me. E.g. Just started it not long ago and already at 600M and still rising. Is this normal?
Comment 4 Jonathan Matthew 2008-11-15 14:16:44 UTC
Mark: no, that's not normal.  The most common cause we've seen recently for that sort of process size growth is something to do with pulseaudio.  Select a different output setting for 'music & movies' in gnome-audio-properties and see if the same thing occurs.

anyway, I've made some changes that should fix this deadlock.

2008-11-15  Jonathan Matthew  <jonathan@d14n.org>

        * backends/gstreamer/rb-player-gst-xfade.c:
        (link_and_unblock_stream), (start_sink_locked), (start_sink),
        (rb_player_gst_xfade_play):
        Disentangle locking a bit.  Drop the stream list lock as soon as
        possible in rb_player_gst_xfade_play, and don't hold the sink lock
        while processing messages received during sink startup.
        Should fix #560371, maybe #550271.
Comment 5 Mark Blakeney 2008-11-15 15:07:27 UTC
FYI, using the same versions I changed music & movies from auto detect to alsa and RB startup memory usage dropped from 550M to 160M. This seems a significant bug which I'd suspect this would affect a lot of people (ubuntu intrepid users at least).
Comment 6 António Lima 2008-12-16 12:28:25 UTC
I also experience the same issue with the play/pause radio station. It happens with some radio stations, being one of them this one mms://stream.radio.com.pt/ROLI-ENC-213

Sometimes playback freezes without hitting pause button and killing the process is the only thing I can do. Notice that this happens to me both with Ubuntu 8.10 and Fedora 10 (version 0.11.6). 

Is this fixed in development?