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 318749 - Rhythmbox buffers forever with 100% cpu use
Rhythmbox buffers forever with 100% cpu use
Status: RESOLVED FIXED
Product: totem-pl-parser
Classification: Core
Component: General
Old
Other All
: Normal major
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-10-13 09:38 UTC by Thomas D Ahle
Modified: 2008-06-03 17:39 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Thomas D Ahle 2005-10-13 09:38:50 UTC
Please describe the problem:
When I try to play a pls from a danish radiochannel like:
http://www.dr.dk/netradio/Metafiler/PLS/DR_P3_128.pls Rhythmbox shows a
Buffering statusbar down in the right corner, and uses 100% cpu. It stays like
this forever, and plays no music.

If I rip some of the stream with mplayer, and ask rhythmbox to play it, it works
fine.

Steps to reproduce:
1. Try to play the stream or another from
http://www.dr.dk/netradio/html/afspillere/03.shtml with rhythmbox

Actual results:
Buffers with 100% cpu use forever

Expected results:
To buffer in a pair of seconds, and then play the music.

Does this happen every time?
Jep

Other information:
Comment 1 James "Doc" Livingston 2005-10-13 10:21:37 UTC
Could you get a backtrace of where it if spending the time while use 100% cpu?
The easiest method is as follows (if you have gdb installed):

1) open a terminal
2) enter "gdb rhythmbox", followed by "run"
3) try to play the station, and wait until it starts using 100% cpui
4) go back to the terminal, type control-C, and then enter "thread apply all bt"
5) copy what it print out, and post it here

Also, what version of gstreamer and gst-plugins do you have installed?
Comment 2 Thomas D Ahle 2005-10-13 14:08:30 UTC
Uhm, it seams that after run, I get:

[New Thread -1253278800 (LWP 14925)]
(no debugging symbols found)
Program received signal SIG33, Real-time event 33.
[Switching to Thread -1242723408 (LWP 14923)]
0x0032b402 in __kernel_vsyscall ()
(gdb)

and rhythmbox doesn't start.
I've got gstreamer-0.8.10-1 and gstreamer-plugins-0.8.8-9
Comment 3 Christophe Fergeau 2005-10-13 14:12:56 UTC
Quoting a message sent to the mailing list by Bastien some time ago:
« Please put

handle SIG33 nostop noprint

in your ~/.gdbinit to prevent gdb from stopping on real-time events.
Then regenerate the backtrace. I think here it didn't stop where the
error happened. »
Comment 4 Thomas D Ahle 2005-10-13 15:20:30 UTC
Super, here you are:

Thread 8 (Thread -1265689680 (LWP 30654))

  • #0 gst_thread_get_current
    from /usr/lib/libgstreamer-0.8.so.1
  • #1 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #2 start_thread
    from /lib/libpthread.so.0
  • #3 clone
    from /lib/libc.so.6

Comment 5 Thomas D Ahle 2005-10-14 10:26:31 UTC
I just found out, that totem also buffers with 100% cpu when playing one of
these pls files. Dunno if you need it. Here is the "(gdb) thread apply all bt"
output:

Thread 3 (Thread -1213178960 (LWP 7265))

  • #0 __kernel_vsyscall
  • #1 pthread_cond_wait
    from /lib/libpthread.so.0
  • #2 gst_queue_get_type
    from /usr/lib/libgstreamer-0.8.so.1
  • #3 gst_pad_call_get_function
    from /usr/lib/libgstreamer-0.8.so.1
  • #4 ??
    from /usr/lib/gstreamer-0.8/libgstoptscheduler.so
  • #5 ??
    from /usr/lib/gstreamer-0.8/libgstoptscheduler.so
  • #6 ??
    from /usr/lib/gstreamer-0.8/libgstoptscheduler.so
  • #7 gst_scheduler_iterate
    from /usr/lib/libgstreamer-0.8.so.1
  • #8 gst_bin_sync_children_state
    from /usr/lib/libgstreamer-0.8.so.1
  • #9 gst_marshal_BOOLEAN__VOID
    from /usr/lib/libgstreamer-0.8.so.1
  • #10 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #15 gst_bin_iterate
    from /usr/lib/libgstreamer-0.8.so.1
  • #16 gst_thread_get_current
    from /usr/lib/libgstreamer-0.8.so.1
  • #17 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #18 start_thread
    from /lib/libpthread.so.0
  • #19 clone
    from /lib/libc.so.6

Comment 6 James "Doc" Livingston 2005-10-15 04:59:49 UTC
Since it's occurring with totem as well it's a gstreamer bug, so I'm re-assigning. 

A lot of crasher bugs have been fixed in later versions of gst-plugins, so it
may have already been fixed - however I can't check with 0.8.11 because I can't
get WMA media to play.
Comment 7 Christian Fredrik Kalager Schaller 2006-02-06 11:46:24 UTC
The issue with this stream seems to be that the playlist parser isn't able to 'dive' into the playlist properly. With Totem I notice it 'stops' at the first layers instead of drilling down. Adding Bastien to the cc list
Comment 8 Bastien Nocera 2006-02-06 12:17:54 UTC
I wonder who was crazy enough to set that up. A .pls file, pointing to ASF reference files, pointing to mms streams.

$ ./test-parser http://www.dr.dk/netradio/Metafiler/PLS/DR_P3_128.pls

###################### parsing ################

added URI 'mmsh://wmscr1.dr.dk/e02ch03m?wmcontentbitrate=300000/.wma&MSWMExt=.asf' with title 'empty'
added URI 'mmsh://wmscr2.dr.dk/e02ch03m?wmcontentbitrate=300000/.wma&MSWMExt=.asf' with title 'empty'
added URI 'mmsh://wmsc.dr.dk/e02ch03m?wmcontentbitrate=300000/.wma&MSWMExt=.asf' with title 'empty'

Still, GStreamer shouldn't spin, and eat the CPU...

2006-02-06  Bastien Nocera  <hadess@hadess.net>

        * src/plparse/test-parser.c: (entry_added), (test_parsing):
        Also print the genre of the URI, if available, and make parsing faster
        using an idle, instead of a timeout
        * src/plparse/totem-pl-parser.c:
        (totem_pl_parser_add_pls_with_contents): try to parse further inside
        .pls playlists to work around broken setups (Closes: #318749)
Comment 9 Christian Fredrik Kalager Schaller 2006-02-07 11:19:54 UTC
ok, julien fixed some stream selection stuff so the streams work with GStreamer 0.10 now. There is still the issue of Totem not being very smart about radio playlists, but I have another bug open for that.
Comment 10 Philip Withnall 2008-06-03 17:39:24 UTC
Mass-move from totem to totem-pl-parser. You can remove all messages by searching for this comment.