[Bug 775445] adaptivedemux: Fix deadlock during transition from track disable to enable

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Dec 3 08:04:14 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=775445

--- Comment #9 from Seungha Yang <sh.yang at lge.com> ---
I attached new log which can show where deadlock happen.

The problem is that,

Seq 1. gst_input_selector_set_active_pad() taking [input-selector lock] 
and inside the function, "reconfigure event" are pushed to "old" pad and "new
pad".
https://cgit.freedesktop.org/gstreamer/gstreamer/tree/plugins/elements/gstinputselector.c#n1391

Seq 2. adaptivedemux got the first "reconfigure event". Then, download task
will be start. then, return the event.
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst-libs/gst/adaptivedemux/gstadaptivedemux.c#n1576

Seq 3. in the download loop, query_position was forwarded to inputselector.
Now, we are in [manifest lock].
https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst-libs/gst/adaptivedemux/gstadaptivedemux.c#n3217

Seq 4. to forwarding query_position in input-selector,
gst_input_selector_get_linked_pad() should be called, but cannot, because it
also taking [input-selector lock]. So, query_position cannot be returned, now.

Seq 5. input-selector sent the last "reconfigure event" to adaptivedemux and it
takes [manifest lock]. But, it was taken at Seq 3, so we cannot go further.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list