GNOME Bugzilla – Bug 785987
adaptivedemux: Deadlock on stopping pipeline
Last modified: 2017-08-11 08:07:13 UTC
Created attachment 357171 [details] [review] Possible patch If a pipeline is stopped when there are pending_streams in an adaptiveplaylist, then there can be a deadlock. gst_adaptive_demux_stop_tasks only stops demux->streams and not demux->pending_streams which can also be running. To test this I was playing http://hls.iptv.optimum.net/news12/nipadlive/index_new.m3u8?callsign=N12KN and continuously restarting playback after a random delay of 0 to 10 seconds. It would deadlock within a minute or two. With the attached patch there is no longer a deadlock.
+ Trace 237785
Thread 21 (LWP 1501)
Thread 1 (LWP 1371)
Review of attachment 357171 [details] [review]: Thanks for the patch. Can you provide it in "git format-patch" format and also explain in the commit message what the problem is and how this fixes it? Basically that you do things for not only the current streams but also for the newly prepared ones.
Created attachment 357176 [details] [review] Patch in git format
Created attachment 357177 [details] [review] Proposed patch
Thanks, merged! (The first one, but it seems to be equivalent)
(In reply to Sebastian Dröge (slomo) from comment #4) > Thanks, merged! (The first one, but it seems to be equivalent) They are - just trying to give you the format you asked for...! Thanks.
The last patch was in the correct format, for the previous one I fixed it up locally :) Thanks again!