[Bug 674043] [0.11] Serialized allocation query deadlocks

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Apr 14 01:26:40 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=674043
  GStreamer | gstreamer (core) | 0.11.x

--- Comment #2 from Matej Knopp <matej.knopp at gmail.com> 2012-04-14 08:26:35 UTC ---
I didn't mention serialized events, i meant serialized queries.

What if (hypothetically) there is a blocking probe that will only be removed
when there is data coming on other pads. The data will never come though
because qtdemux gets stuck doing the allocation query.

i.e.

           +----+---[ Pad1: thread blocked by probe 
         / |    |           lifted when there is data on other branches]
QtDemux +--| MQ +---[ Pad2 ]
         \ |    |
           +----+---[ Pad3 ]

QtDemux will do Allocation Query on pad1 from the loop thread. The thread is
paused until Pad1 responds. However there is blocking probe on pad1 that will
only be lifted when some other probe (on pad2 or 3) gets data, caps event etc.

Normally the probe wouldn't be a problem because there is a multiqueue. However
with serialized queries the query will block the loop thread immediately, even
with multiqueue.

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