[Bug 769894] New: validate: Race when checking whether some actions have completed
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sun Aug 14 15:31:33 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=769894
Bug ID: 769894
Summary: validate: Race when checking whether some actions have
completed
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: major
Priority: Normal
Component: gst-devtools
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: bilboed at bilboed.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
This race happens quite quickly with the GES scrubbing validate tests. The core
reason is because of the way GES timeline posts its own ASYNC messages and
handles seeks asynchronously.
Note : This is *not* an issue in GES.
Take the following scenario (the direction of the seek doesn't matter):
pause, playback-time=0.0
seek, playback-time=0.0, start="duration - 0.5", flags=accurate+flush
* The pause action is executed
* The pipeline prerolls
* The STATE_CHANGED message (READY=>PAUSED) is posted on the bus from a
streaming thread
* The ASYNC_DONE message is posted on the bus from a streaming thread
* The main thread pops out the STATE_CHANGED message from the bus
** The pause action is marked as done
** The next action is executed (flushing seek)
** ges-pipeline posts ASYNC_START and returns TRUE for the seek event
* The main thread pops out the next message (ASYNC_DONE from the initial
preroll)
** it checks for the current action, sees that it's a seek, and marks it as
done
.. but the seek wasn't executed by then
The visible result of this is seeing such scenarios failing with:
"event: position after a seek is wrong : Reported position after accurate seek
in PAUSED state should be exactly what the user asked for"
Because validate checks the position after it *thinks* the seek event was
executed ... but it wasn't really.
--
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