[Bug 796737] ASYNC_DONE message is dropped leading to hanging application

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jul 10 09:32:33 UTC 2018


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

--- Comment #7 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
(In reply to Joakim Johansson from comment #6)

> However I have some thoughts about bullet three:
> 1) I do not think that you will get both the async_start and async_done
> message while "polling" but what do you mean by do nothing at all in that
> case? If the async done is not sent then will our application hang.
> Shouldn't first the async_start code be executed and when finished then
> should the async_done code be executed.

If the corresponding async-done was already received, both can be dropped
without doing anything. The state change happened after all, it's all done. Or
am I missing something here?

What would your application wait for, what would have triggered the waiting?

Or is the problem that a state change could've returned ASYNC but there would
never be a async-done message corresponding to it?

The problem I see with handling both normally is that it causes spurious state
changes although it's all finished already.

> 2) I assume this will be the "normal" branch where we have a queued
> async_start but not yet received async_done, what do you mean by behave as
> normal? Start the execution of async_start but how will you handle if the
> async_done is received while handling the "delayed" async_start?

Yes, and async-done would also have to be delayed then until async-start is
done

> 3) Something must have gone wrong if we get an async_done without a
> corresponding async_start, is it correct to only drop it, sounds as an
> assert to me to find the error.

It currently would be dropped already, but there should be at least a warning
about it, yes.

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