GNOME Bugzilla – Bug 757335
adaptivedemux: release manifest lock before changing internal pipeline state
Last modified: 2015-10-30 11:45:09 UTC
When changing the adaptivedemux state, gst_adaptive_demux_change_state will try to change the state for all elements on its internal pipeline. One of those is the src element. The src element has a streaming thread which might take the manifest lock (in _src_chain function). Changing the src state might try to take a lock that the streaming thread is holding. In this case the system deadlocks: - gst_adaptive_demux_change_state holds the manifest and tries to get a lock in src element to change its state - src element holds its lock and tries to get the manifest lock In order to avoid the deadlock, the gst_adaptive_demux_change_state function should not hold the manifest lock while changing the state of its pipeline.
Created attachment 314430 [details] [review] proposed patch
Vincent, can you review and merge this?
commit ac58216f0542ebc5160ada5ebd55f5d845618891 Author: Florin Apostol <florin.apostol@oregan.net> Date: Thu Oct 29 23:23:05 2015 +0000 adaptivedemux: release manifest lock before changing element state https://bugzilla.gnome.org/show_bug.cgi?id=757335