[Bug 764939] New: gstbasesink: deadlock caused by klass->wait_event() which leaves preroll mutex locked
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Apr 12 10:35:10 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=764939
Bug ID: 764939
Summary: gstbasesink: deadlock caused by klass->wait_event()
which leaves preroll mutex locked
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer (core)
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: mariusz.buras at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
I'm seeing a deadlock in certain cases when after calling klass->wait_event()
preroll mutex remains locked. This is happening because
gst_base_sink_default_wait_event() calls to gst_base_sink_do_sync() which
requires preroll lock to be taken before. Sadly
gst_base_sink_default_wait_event() doesn't do that and eventually
GST_BASE_SINK_PREROLL_WAIT() is called without preroll mutex being taken. After
the wait finishes corresponding preroll mutex remains locked causing a deadlock
later in the execution (state change in my case).
A fix for that doesn't seem to be so obvious as there are other functions (like
gst_base_sink_event()) which end up calling gst_base_sink_do_sync() with
preroll lock taken.
Is this a genuine issue or gstbasesink usage error on my part?
--
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