GNOME Bugzilla – Bug 783256
adaptivedemux: make sure to free all "old streams"
Last modified: 2017-06-12 14:16:52 UTC
As we release the MANIFEST_LOCK in stop_tasks, demux->priv->old_streams can be set, we need to free these otherwise we may end up trying to dispose elements in the READY state.
Created attachment 352912 [details] [review] adaptivedemux: make sure to free all "old streams"
To reproduce this error, first apply https://bugzilla.gnome.org/show_bug.cgi?id=783255 (otherwise you'll deadlock before even getting there), then simply run: gst-validate-launcher --mute -t 'validate.hls.media_check.bipbopall_m3u8' --forever
Review of attachment 352912 [details] [review]: ::: gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ +809,3 @@ g_list_free_full (old_streams, (GDestroyNotify) gst_adaptive_demux_stream_free); + } else if (demux->priv->old_streams) { why "else if" and not just "if" ?
> why "else if" and not just "if" ? No good reason, I'll change that, in any case we do want to cleanup whatever is in demux->priv->old_streams, it's our last chance to do so afaiu
Created attachment 352957 [details] [review] adaptivedemux: make sure to free all "old streams" As we release the MANIFEST_LOCK in stop_tasks, demux->priv->old_streams can be set, we need to free these otherwise we may end up trying to dispose elements in the READY state.
commit c88125045f06a92615a01a9fc2d3c2e816e0cd2f Author: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com> Date: Wed May 31 03:14:04 2017 +0200 adaptivedemux: make sure to free all "old streams" As we release the MANIFEST_LOCK in stop_tasks, demux->priv->old_streams can be set, we need to free these otherwise we may end up trying to dispose elements in the READY state. https://bugzilla.gnome.org/show_bug.cgi?id=783256