GNOME Bugzilla – Bug 681178
Rapidly switching between internet radio stations results in crash
Last modified: 2014-03-09 07:42:39 UTC
Created attachment 220301 [details] Stack trace Using Rhythmbox from Git commit 0a3cb152 The radio stations used in the test were: http://live.str3am.com:2410/wypr.m3u (step 5) http://wamu.org/streams/live/1/live.m3u (step 7) Steps to reproduce: 1. Open Rhythmbox. 2. Select Edit->Preferences from the menu 3. Select the "Playback" tab and enable the option "Crossfade between tracks". Ensure the Crossfade Duration is set to 1 second. 4. Select "Radio" from the sidebar. Ensure that two internet radio stations are available. Let the first station in the browser be (A) and the second be (B). 5. Select (A) by double clicking its entry in the browser. The station should start to play. 6. At some point, Rhythmbox will attempt to rebuffer (A). The progress bar at the bottom of the UI will appear, fill, then disappear. Playback will not continue, but Rhythmbox does not indicate that playback has stopped. In particular, the Play/Pause button is still active. 7. From the internet radio browser, select internet radio station (B) by double clicking its entry. Playback should not begin, nor should there be any sign in the ui that the option was indeed selected. The view indicates that (A) is selected. 8. Click the Play/Pause button to deactivate the button. 9. Click the Play/Pause button to play the station (A). Expected result: The internet station selected in step 3 begins to play. Received result: A blank dialog appears for about a second, then disappears along with the Rhythmbox application. Rhythmbox segfaults.
Waiting for playback to stop while rebuffering (step 6) seems to be unnecessary. I can only get this bug to trigger while the radio station has been playing for more than a few minutes, though.
The segfault comes from rb-player-gst-xfade.c:1853 g_mutex_lock (&stream->lock); Because stream is NULL. However, the test for whether stream is NULL doesn't occur until rb-player-gst-xfade.c:1904.
+ Trace 230635
Created attachment 220635 [details] [review] Patch to check whether stream is NULL before acquiring lock
*** Bug 679584 has been marked as a duplicate of this bug. ***
Nice work, pushed as commit f5e8411. Thanks for the patch.
*** Bug 683477 has been marked as a duplicate of this bug. ***
*** Bug 691566 has been marked as a duplicate of this bug. ***