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 623858 - Segmentation fault on multiple plays of invalid radio station
Segmentation fault on multiple plays of invalid radio station
Status: RESOLVED DUPLICATE of bug 612156
Product: rhythmbox
Classification: Other
Component: Internet Radio
0.13.x
Other Linux
: Normal major
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-07-08 16:57 UTC by Satish K.C.
Modified: 2010-09-26 22:01 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Satish K.C. 2010-07-08 16:57:24 UTC
While this often repros with a proper URL, easiest way I was able to repro this is:
1) Create a radio station entry with the URL:
   http://78.70.155.96.
2) Click Play. You will get the "search for suitable plugins dialog". Cancel it & the red invalid marker shows up in the radio station list
3) Select some other radio station
4) Re-select the invalid one & click play. Promptly it SEGVs.

GDB reveals the problem to be in rb_shell_player_playing_changed_cb (rb-shell-player.c), line 3769 (as of the v0.13 release).
Changing the following line
		if (rb_source_can_pause (player->priv->source)) {
to
		if (player->priv->source && rb_source_can_pause (player->priv->source)) {

seems to fix this.
Comment 1 Fabio Durán Verdugo 2010-07-09 00:12:53 UTC
I can confirm this

I have the backtrace



(gdb) bt full
  • #0 g_value_set_object
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 2940
  • #1 gst_play_bin_get_property
    at gstplaybin2.c line 1851
  • #2 object_get_property
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 1006
  • #3 g_object_get_valist
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 1642
  • #4 g_object_get
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 1732
  • #5 source_notify_cb
    at rb-player-gst.c line 636
  • #6 g_cclosure_marshal_VOID__PARAM
    at /build/buildd/glib2.0-2.25.10/gobject/gmarshal.c line 533
  • #7 g_closure_invoke
    at /build/buildd/glib2.0-2.25.10/gobject/gclosure.c line 767
  • #8 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.25.10/gobject/gsignal.c line 3253
  • #9 g_signal_emit_valist
    at /build/buildd/glib2.0-2.25.10/gobject/gsignal.c line 2984
  • #10 g_signal_emit
    at /build/buildd/glib2.0-2.25.10/gobject/gsignal.c line 3041
  • #11 g_object_dispatch_properties_changed
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 802
  • #12 gst_object_dispatch_properties_changed
    at gstobject.c line 523
  • #13 g_object_notify_dispatcher
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 329
  • #14 g_object_notify_queue_thaw
    at /build/buildd/glib2.0-2.25.10/gobject/gobjectnotifyqueue.c line 120
  • #15 g_object_notify_by_spec_internal
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 860
  • #16 g_object_notify
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 901
  • #17 notify_source_cb
    at gstplaybin2.c line 3128
  • #18 g_cclosure_marshal_VOID__PARAM
    at /build/buildd/glib2.0-2.25.10/gobject/gmarshal.c line 533
  • #19 g_closure_invoke
    at /build/buildd/glib2.0-2.25.10/gobject/gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.25.10/gobject/gsignal.c line 3253
  • #21 g_signal_emit_valist
    at /build/buildd/glib2.0-2.25.10/gobject/gsignal.c line 2984
  • #22 g_signal_emit
    at /build/buildd/glib2.0-2.25.10/gobject/gsignal.c line 3041
  • #23 g_object_dispatch_properties_changed
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 802
  • #24 gst_object_dispatch_properties_changed
    at gstobject.c line 523
  • #25 g_object_notify_dispatcher
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 329
  • #26 g_object_notify_queue_thaw
    at /build/buildd/glib2.0-2.25.10/gobject/gobjectnotifyqueue.c line 120
  • #27 g_object_notify_by_spec_internal
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 860
  • #28 g_object_notify
    at /build/buildd/glib2.0-2.25.10/gobject/gobject.c line 901
  • #29 setup_source
    at gsturidecodebin.c line 1702
  • #30 gst_uri_decode_bin_change_state
    at gsturidecodebin.c line 2179
  • #31 gst_element_change_state
    at gstelement.c line 2546
  • #32 gst_element_set_state_func
    at gstelement.c line 2502
  • #33 gst_element_set_state
    at gstelement.c line 2403
  • #34 gst_bin_element_set_state
    at gstbin.c line 2136
  • #35 gst_bin_change_state_func
    at gstbin.c line 2435
  • #36 gst_pipeline_change_state
    at gstpipeline.c line 475
  • #37 gst_play_bin_change_state
    at gstplaybin2.c line 3604
  • #38 gst_element_change_state
    at gstelement.c line 2546
  • #39 gst_element_set_state_func
    at gstelement.c line 2502
  • #40 gst_element_set_state
    at gstelement.c line 2403
  • #41 start_state_change
    at rb-player-gst.c line 396
  • #42 state_change_finished
    at rb-player-gst.c line 425
  • #43 impl_play
    at rb-player-gst.c line 883
  • #44 rb_player_play
    at rb-player.c line 419
  • #45 rb_shell_player_open_playlist_url
    at rb-shell-player.c line 770
  • #46 open_location_thread
    at rb-shell-player.c line 1567
  • #47 g_thread_create_proxy
    at /build/buildd/glib2.0-2.25.10/glib/gthread.c line 1898
  • #48 start_thread
    from /lib/libpthread.so.0
  • #49 clone
    from /lib/libc.so.6
(gdb)
Comment 2 Jonathan Matthew 2010-09-26 22:01:34 UTC
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.

*** This bug has been marked as a duplicate of bug 612156 ***