[Bug 767879] New: Deadlock in WebKit when deleting the media player while HLS media was loaded
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Mon Jun 20 16:43:26 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=767879
Bug ID: 767879
Summary: Deadlock in WebKit when deleting the media player
while HLS media was loaded
Classification: Platform
Product: GStreamer
Version: 1.8.2
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-bad
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: carlosgc at gnome.org
QA Contact: gstreamer-bugs at lists.freedesktop.org
CC: mcatanzaro at gnome.org, phil at base-art.net,
vjaquez at igalia.com
GNOME version: ---
It happens when the media player is destroyed by the garbacge collector and
pipeline is set to NULL state. This always happens in the main thread, since
the garbage colector frees the objects in the main thread. The situation is the
following one:
Main Thread:
- blocked on GST_PAD_STREAM_LOCK (post_activate() gstpad.c)
Secondary Thread:
- blocked on GST_MANIFEST_LOCK (gst_adaptive_demux_src_event() reconfigure
gstadaptivedemux.c)
- has EXPOSE_LOCK of gstdecodebin2 taken from source_pad_blocked_cb()
Secondary Thread:
- blocked on EXPOSE_LOCK (no_more_pads_cb() gstdecodebin2.c)
- it seems to have GST_PAD_STREAM_LOCK of gstpad taken from
gst_pad_send_event_unchecked()
- has GST_MANIFEST_LOCK of gstadaptivedemux taken from _src_event, got
fragment EOS
Secondary Thread:
- infinite loop waiting for fragment download to finish
(gst_adaptive_demux_stream_download_uri()
I haven't been able to fix or workaround this from WebKit code, the only change
the seemed to work was releasing the manifest lock in
gst_adaptive_demux_expose_streams before calling gst_element_no_more_pads() and
taking it again. But I have no idea if the change is correct or just a
workaround, the gst code is full of locks and conditions that is very difficult
to follow.
--
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