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 131306 - Handle unsupported radio streams gracefully
Handle unsupported radio streams gracefully
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Internet Radio
0.6.4
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-01-13 03:54 UTC by Cymon Cox
Modified: 2006-01-15 08:55 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Cymon Cox 2004-01-13 03:54:13 UTC
Is it possible to recognise and handle unsupported radio streams gracefully:

Examples: 
1) http://www.bbc.co.uk/6music/ram/dsatg2.ram  - causes rb to hang when played

2) http://stream.servstream.com/ViewWeb/BBCRadio_music/Event/BBCRadio6.asx -
brings up four error boxes each with the legend: "creating uri
"mms://212.58.231.99/b3o6c011s3?digest=0140036b32wbh2psswmtG1CdsVM1bh57ahja4==BBCRadio_music"
(Success)" (but does not hang rb)
Comment 1 Cymon Cox 2004-01-15 03:23:50 UTC
Example 1 causes an outright crash thought the backtrace looks pretty
unhelpful...
any suggestions?

backtrace for Example 1):
(gdb) run
Starting program: /usr/bin/rhythmbox
[Thread debugging using libthread_db enabled]
[New Thread -1084407136 (LWP 5429)]
INFO ( 5429: 0) Initializing GStreamer Core Library version 0.6.3
INFO ( 5429: 0) CPU features: (c1c7fbff) MMX 3DNOW MMXEXT
INFO ( 5429: 0) registry: loaded user_registry in 0.000228 seconds
          (/home/cy/.gstreamer/registry.xml)
INFO ( 5429: 0) registry: loaded global_registry in 0.149927 seconds
          (/var/cache/gstreamer-0.6/registry.xml)
[New Thread 27106224 (LWP 5430)]
[New Thread 134085552 (LWP 5431)]
[New Thread 91638704 (LWP 5432)]
[New Thread 58702768 (LWP 5433)]
[New Thread 117390256 (LWP 5434)]
[New Thread 29207472 (LWP 5435)]
 
Program exited with code 01.
(gdb) thread apply all bt
(gdb)


backtrace for Example 2):
(gdb) run
Starting program: /usr/bin/rhythmbox
[Thread debugging using libthread_db enabled]
[New Thread -1084366176 (LWP 5264)]
INFO ( 5264: 0) Initializing GStreamer Core Library version 0.6.3
INFO ( 5264: 0) CPU features: (c1c7fbff) MMX 3DNOW MMXEXT
INFO ( 5264: 0) registry: loaded user_registry in 0.000229 seconds
          (/home/cy/.gstreamer/registry.xml)
INFO ( 5264: 0) registry: loaded global_registry in 0.157594 seconds
          (/var/cache/gstreamer-0.6/registry.xml)
[New Thread 25156528 (LWP 5265)]
[New Thread 58702768 (LWP 5266)]
[New Thread 69192624 (LWP 5267)]
[New Thread 92158896 (LWP 5268)]
[New Thread 130845616 (LWP 5269)]
Entity: line 3: error: xmlParseEntityRef: expecting ';'
/212.58.231.99/b3o5c011s2?digest=014006048211pO4Y9fmAp8/dNb3NYS2JXzUQg=&provider
                                                                     
         ^
Entity: line 4: error: xmlParseEntityRef: expecting ';'
/212.58.231.99/b3o6c011s3?digest=0140060482XsHKkMz+/NvGOuf+CkMi7nP5bVI=&provider
                                                                     
         ^
Entity: line 3: error: xmlParseEntityRef: expecting ';'
/212.58.231.99/b3o5c011s2?digest=014006048211pO4Y9fmAp8/dNb3NYS2JXzUQg=&provider
                                                                     
         ^
Entity: line 4: error: xmlParseEntityRef: expecting ';'
/212.58.231.99/b3o6c011s3?digest=0140060482XsHKkMz+/NvGOuf+CkMi7nP5bVI=&provider
                                                                     
         ^
[New Thread 27257776 (LWP 5270)]
 
Program exited normally.
Comment 2 Loïc Minier 2004-10-29 08:45:29 UTC
For the example 1 problem, this is the same as Bug#156783, and it is an error in
the stream description, not in rhythmbox.  However, rhythmbox could handle this
gracefully as other players do.
Comment 3 Christophe Fergeau 2004-11-01 17:39:25 UTC
Bug #156783 describes similar issues.
Comment 4 James "Doc" Livingston 2005-07-29 10:51:29 UTC
This still occurs with cvs. The problem appears to be that error_cb is getting
called with error=NULL. Adding "if (error == NULL) return;" will top the
crashes, and display other errors.

If passing the callback a NULL error of an okay thing for GStreamer to do (I'm
not sure), then that should fix it - but if GStreamer shouldn't be doing that,
we should file a bug against GStreamer.


Backtrace with an assert checking for error=NULL

  • #0 IA__g_logv
    at gmessages.c line 503
  • #1 IA__g_log
    at gmessages.c line 517
  • #2 IA__g_assert_warning
    at gmessages.c line 552
  • #3 error_cb
    at rb-player-gst.c line 247
  • #4 gst_marshal_VOID__OBJECT_BOXED_STRING
    from /usr/lib/libgstreamer-0.8.so.1
  • #5 IA__g_closure_invoke
    at gclosure.c line 603
  • #6 signal_emit_unlocked_R
    at gsignal.c line 2508
  • #7 IA__g_signal_emit_valist
    at gsignal.c line 2267
  • #8 IA__g_signal_emit
    at gsignal.c line 2311
  • #9 gst_element_error_full
    from /usr/lib/libgstreamer-0.8.so.1
  • #10 gst_play_base_bin_get_type
    from /usr/lib/gstreamer-0.8/libgstplaybin.so
  • #11 ??
    from /usr/lib/gstreamer-0.8/libgstplaybin.so
  • #12 ??
  • #13 ??
  • #14 ??
    from /usr/lib/libgstreamer-0.8.so.1
  • #15 ??
    from /usr/lib/libgstreamer-0.8.so.1
  • #16 ??
  • #17 _gst_buffer_type
    from /usr/lib/libgstreamer-0.8.so.1
  • #18 ??
  • #19 ??
    from /usr/lib/libgstreamer-0.8.so.1
  • #20 ??
    from /usr/lib/gstreamer-0.8/libgstplaybin.so
  • #21 ??
  • #22 ??
  • #23 gst_element_set_state
    from /usr/lib/libgstreamer-0.8.so.1
  • #24 gst_element_set_state
    from /usr/lib/libgstreamer-0.8.so.1
  • #25 gst_element_set_state
    from /usr/lib/libgstreamer-0.8.so.1
  • #26 rb_player_sync_pipeline
    at rb-player-gst.c line 407
  • #27 rb_player_open
    at rb-player-gst.c line 444
  • #28 rb_shell_player_open_playlist_location
    at rb-shell-player.c line 903
  • #29 totemplparser_marshal_VOID__STRING_STRING_STRING
    at totemplparser-marshal.c line 92
  • #30 IA__g_closure_invoke
    at gclosure.c line 603
  • #31 signal_emit_unlocked_R
    at gsignal.c line 2508
  • #32 IA__g_signal_emit_valist
    at gsignal.c line 2267
  • #33 IA__g_signal_emit
    at gsignal.c line 2311
  • #34 totem_pl_parser_add_one_url
    at totem-pl-parser.c line 662
  • #35 totem_pl_parser_add_ra
    at totem-pl-parser.c line 710
  • #36 totem_pl_parser_parse_internal
    at totem-pl-parser.c line 1543
  • #37 rb_shell_player_set_playing_entry
    at rb-shell-player.c line 952
  • #38 IA__g_cclosure_marshal_VOID__POINTER
    at gmarshal.c line 601
  • #39 IA__g_closure_invoke
    at gclosure.c line 603
  • #40 signal_emit_unlocked_R
    at gsignal.c line 2508
  • #41 IA__g_signal_emit_valist
    at gsignal.c line 2267
  • #42 IA__g_signal_emit
    at gsignal.c line 2311
  • #43 rb_entry_view_row_activated_cb
    at rb-entry-view.c line 1787
  • #44 _gtk_marshal_VOID__BOXED_OBJECT
    at gtkmarshalers.c line 1222
  • #45 IA__g_closure_invoke
    at gclosure.c line 603
  • #46 signal_emit_unlocked_R
    at gsignal.c line 2508
  • #47 IA__g_signal_emit_valist
    at gsignal.c line 2267
  • #48 IA__g_signal_emit
    at gsignal.c line 2311
  • #49 IA__gtk_tree_view_row_activated
    at gtktreeview.c line 10468
  • #50 gtk_tree_view_button_press
    at gtktreeview.c line 2465
  • #51 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #52 g_type_class_meta_marshal
    at gclosure.c line 686
  • #53 IA__g_closure_invoke
    at gclosure.c line 603
  • #54 signal_emit_unlocked_R
    at gsignal.c line 2546
  • #55 IA__g_signal_emit_valist
    at gsignal.c line 2277
  • #56 IA__g_signal_emit
    at gsignal.c line 2311
  • #57 gtk_widget_event_internal
    at gtkwidget.c line 3734
  • #58 IA__gtk_propagate_event
    at gtkmain.c line 2157
  • #59 IA__gtk_main_do_event
    at gtkmain.c line 1380
  • #60 gdk_event_dispatch
    at gdkevents-x11.c line 2295
  • #61 IA__g_main_context_dispatch
    at gmain.c line 1934
  • #62 g_main_context_iterate
    at gmain.c line 2565
  • #63 IA__g_main_loop_run
    at gmain.c line 2769
  • #64 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #65 main
    at main.c line 303

Comment 5 James "Doc" Livingston 2005-08-21 10:03:57 UTC
I committed a small fix that should stop the error=NULL crash (the cause is
fixed in gstreamer cvs).
Comment 6 James "Doc" Livingston 2006-01-15 08:55:50 UTC
Closing since the first problem is bug 156783, and the second one is fixed.