[Bug 769515] New: oggdemux: race with validate tests
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Aug 4 14:18:50 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=769515
Bug ID: 769515
Summary: oggdemux: race with validate tests
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-base
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: gdesmott at gnome.org
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Some validate tests such as
validate.http.playback.fast_forward.vorbis_theora_1_ogg are racy and sometimes
failing (easier to reproduce with no/few logs enabled).
Here is what happens most of the time (test passing):
- gst_ogg_demux_activate_chain: first chain is activated
- GST_EVENT_SEGMENT is received on sinkpad and gst_ogg_demux_reset_streams()
reset the chain
- gst_ogg_demux_activate_chain is called again and the first chain is
re-activated
- souphttpsrc is done reading the file and send EOS
- validate sends a seek event which is handled just fine by oggdemux; all good.
And here is what's happening when the test is failing. The first 2 steps are
the same:
- gst_ogg_demux_activate_chain: first chain is activated
- GST_EVENT_SEGMENT is received on sinkpad and gst_ogg_demux_reset_streams()
reset the chain
But then we reach:
- souphttpsrc is done reading the file and send EOS
This happens BEFORE oggdemux had a chance to re-activate the first chain, so
this code path is triggered when handling the EOS from souphttpsrc:
if (ogg->current_chain == NULL) {
GST_WARNING_OBJECT (ogg,
"EOS while trying to retrieve chain, seeking disabled");
ogg->push_disable_seeking = TRUE;
Then when validate sends the seek event it's not handled as
ogg->push_disable_seeking is TRUE.
Should gst_ogg_demux_activate_chain() set push_disable_seeking to FALSE?
That should greatly reduce the risk of hitting the race but it could (I think?)
still happen if the seek event is send before the chain has been re-activated.
--
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