[Bug 757335] New: adaptivedemux: release manifest lock before changing internal pipeline state

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Oct 29 16:22:50 PDT 2015


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

            Bug ID: 757335
           Summary: adaptivedemux: release manifest lock before changing
                    internal pipeline state
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: florin.apostol at oregan.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

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.

-- 
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