GNOME Bugzilla – Bug 762087
CD playing with cross fading on crashes rhythmbox
Last modified: 2016-03-22 09:38:50 UTC
The bug has been reported on https://launchpad.net/bugs/1545764 That's using rhythmbox 3.3 and gstreamer 1.7 Those warnings are displayed before the segfault "Warning: invalid cast from 'GstPad' to 'GstGhostPad' (rhythmbox:22834): GStreamer-CRITICAL **: gst_ghost_pad_get_target: assertion 'GST_IS_GHOST_PAD (gpad)' failed (rhythmbox:22834): GStreamer-CRITICAL **: gst_pad_add_probe: assertion 'GST_IS_PAD (pad)' failed (rhythmbox:22834): GStreamer-CRITICAL **: gst_object_get_parent: assertion 'GST_IS_OBJECT (object)' failed" backtrace "#0 0xb7ee5f6a in add_stream_uri_tag (stream=0xac941038, pad=0xac92a9c8) at rb-player-gst-xfade.c:2082
+ Trace 235973
Created attachment 324503 [details] [review] Possible fix for segfault. I am also affected by this issue. The issue appears to be caused by the line rb_debug ("not setting stream uri tag for %s", GST_OBJECT_NAME (e)); in rb-player-gst-xfade.c Specifically, using gdb it can be seen that `e` is 0x0 during the time of the segfault. (gdb) p e $1 = (GstElement *) 0x0 The attached patch adds a statement to check the state of `e`, and modifies the rb_debug string accordingly so that no segfault occurs.
If e is NULL there, something has gone wrong earlier in the function, so it would be better to handle the original failure better rather than ignoring it there.
Created attachment 324508 [details] [review] this should work a bit better Does this also stop it crashing?
Apologies, I should have spent more time on this. Your solution is indeed much better, and it also fixes the crashes for me. Thanks!
pushed as commit 1ccbbc3. thanks for testing - I can't easily test audio cd playback any more.