[Bug 767879] Deadlock in WebKit when deleting the media player while HLS media was loaded

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Jun 22 06:19:43 UTC 2016


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

--- Comment #9 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
(In reply to Carlos Garcia Campos from comment #8)
> (In reply to Sebastian Dröge (slomo) from comment #7)
> > Ok, so the problem is that there is:
> > 
> > Thread 11: streaming thread of video decoder, pad probe in decodebin, having
> > decodebin locks, linking things, causing reconfigure event, reconfigure
> > event in adaptivedemux causes manifest lock
> > 
> > Thread 18: streaming thread of one of the internal souphttpsrc, manifest
> > lock, no-more-pads signal, decodebin no-more-pads handler, decodebin locks
> 
> Yes, and then main thread blocked on post_activate because the pad streams
> lock is never released.

Yes, that's expected if there is a deadlock in the streaming threads elsewhere.
The main thread can be ignored here, fortunately the problem is only between
two threads and not three :)

> > 
> > So in any case we need to find a way of moving the no-more-pads signal
> > emission outside of the lock in a safe way.
> 
> My first attempt to fix this was moving the no more pads emission after the
> cancellation of the threads, but that didn't work and caused even more
> blocks. I want to help here, but I don't know gst enough to know how to
> properly fix this.

This will need some more thorough analysis of the locking in adaptivedemux
unfortunately. Not sure when I'll have time to go through that...

Maybe your patch is good, maybe not :) The problem with moving no-more-pads up
to the callers is also that there are a few callers, and the caller is already
holding the manifest lock.

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