GNOME Bugzilla – Bug 783255
adaptivedemux: release the manifest lock ...
Last modified: 2017-06-12 14:16:46 UTC
before broadcasting preroll. The deadlock was as follows: -> The subclass pushes a buffer on a newly-created stream in T1 -> We take the preroll lock in T1, to handle_preroll -> The demuxer is stopped in T2, we take the MANIFEST_LOCK -> T1 starts blocking because it received a reconfigure event and needs to take the MANIFEST_LOCK -> T2 deadlocks because it now wants the preroll_lock.
Created attachment 352910 [details] [review] adaptivedemux: release the manifest lock ...
Created attachment 352911 [details] Stacktrace for the described deadlock
To reproduce this error, simply run: gst-validate-launcher --mute -t 'validate.hls.media_check.bipbopall_m3u8' --forever
Comment on attachment 352910 [details] [review] adaptivedemux: release the manifest lock ... Looks good. Should get backported.
commit 694da006e041cfd3fa1247525f21fdaedebac446 Author: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com> Date: Wed May 31 02:46:01 2017 +0200 adaptivedemux: release the manifest lock ... before broadcasting preroll. The deadlock was as follows: -> The subclass pushes a buffer on a newly-created stream in T1 -> We take the preroll lock in T1, to handle_preroll -> The demuxer is stopped in T2, we take the MANIFEST_LOCK -> T1 starts blocking because it received a reconfigure event and needs to take the MANIFEST_LOCK -> T2 deadlocks because it now wants the preroll_lock. https://bugzilla.gnome.org/show_bug.cgi?id=783255