[Bug 706831] composition: Release objects lock while forwarding an event

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jan 6 02:49:39 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=706831
  GStreamer | gnonlin | unspecified

Thibault Saunier <thibault.saunier> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #8 from Thibault Saunier <thibault.saunier at collabora.com> 2014-01-06 10:49:33 UTC ---
commit 8f3bb083f8e59d9c541c4f80ed40a1b9c780e7dd
Author: Thibault Saunier <thibault.saunier at collabora.com>
Date:   Mon Aug 26 16:26:31 2013 -0400

    composition: Release objects lock while forwarding an event

    There is no reason to keep it and in some rare cases it creates
    deadlocks as followed:
      t1:
         → Composition receives a flushing seek, it takes the OBJECTS_LOCK
            and fowards the flushing seek event upstream
         → adder receives the seek and set its collectpad to flushing
            This implies tacking STREAM_LOCK (collectpad)

      t2:
        → Collectpad has buffers ready, and has the STREAM_LOCK
        (collectpad) and is EOS, so it sends it downstream
        → The composition receives EOS, and needs to check if it is
        the actual EOS or not, thus need to take the OBJECTS_LOCK

    This create a deadlock, and in the first stage, we did not need the
    OBJECTS_LOCK to forward downstream the flushing seek, so do not take
    it.

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

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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