GNOME Bugzilla – Bug 783753
splitmux: Drop allocation queries
Last modified: 2017-06-17 07:57:34 UTC
See commit message
Created attachment 353695 [details] [review] splitmux: Drop allocation queries They can cause us to deadlock, while we're waiting for a new frame and upstream is waiting for the allocation query to be answered before sending a frame
Attachment 353695 [details] pushed as 96cd941 - splitmux: Drop allocation queries
(In reply to Vivia Nikolaidou from comment #1) > Created attachment 353695 [details] [review] [review] > splitmux: Drop allocation queries > > They can cause us to deadlock, while we're waiting for a new frame and > upstream is waiting for the allocation query to be answered before > sending a frame This looks like just a workaround to some deadlock. Would it be possible to share the stacktrace of that deadlock. Does it match https://bugzilla.gnome.org/show_bug.cgi?id=783301 ? Or is this something else. Would be nice that we gather the understanding of what is being fixed here.
The problem here is that at any point in time, upstream can send an ALLOCATION (or any other serialized) query. This ends up in the queue inside splitmuxsink, which has to run empty for the query to be forwarded. However splitmuxsink has various parts in the code that wait for new buffers to be put into the queue before it proceeds, which then will wait forever (upstream waiting for allocation query, so no new buffers vs. downstream/splitmuxsink waiting for new buffers by upstream before consuming the current ones in the queue).