[Bug 701763] New: Race condition in gstreamer-editing-services integration tests, with a possible fix in gstpad.
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Jun 6 15:41:26 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=701763
GStreamer | gstreamer (core) | git
Summary: Race condition in gstreamer-editing-services
integration tests, with a possible fix in gstpad.
Classification: Platform
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: mathieu.duponchelle at epitech.eu
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=246199)
View: https://bugzilla.gnome.org/attachment.cgi?id=246199
Review: https://bugzilla.gnome.org/review?bug=701763&attachment=246199
Proposed patch to fix the issue
The problem pops when running:
GST_CHECKS=test_basic_playback make check-integration-forever on my integration
branch :
https://github.com/MathieuDuponchelle/PitiviGes/commits/integration
The end result is that "Gstreamer encountered a general stream error" gets
posted on the bus. The steps are :
1) the demuxer tries to push a buffer
2) gst_pad_push_data locks the pad and checks for flushing but it is not
flushing.
3) The demuxer gets a seek flush event, pushes a flush_start_event and waits
for the lock.
4) _push_data unlocks the pad and calls chain_data_unchecked, which checks for
flushing but the pad is not flushing yet.
5) in the meantime, the lock has been taken in push_event, the pad has been set
to flushing, and an element returns NOT_NEGOTIATED.
6) _push_data returns NOT_NEGOTIATED.
7) the demuxer freaks out.
The proposed patch checks if the pad has gone to flushing while it was
unlocked, and returns GST_FLOW_FLUSHING in that case.
It breaks one test case though, in gstghostpad,
test_ghost_pads_remove_while_playing() , that test adds a robe, which
deactivates the ghostpad and removes it, the test waits a GST_FLOW_OK return,
but instead it gets GST_FLOW_FLUSHING, which seems reasonable as the pad was
actually deactivated, so the patch also changes that assertion.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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