GNOME Bugzilla – Bug 708891
check: adder test_flush_start_flush_stop racy
Last modified: 2016-09-25 15:24:41 UTC
CK_FORK=no GST_CHECKS=test_flush_start_flush_stop make elements/adder.forever Running suite(s): adder Unexpected critical/warning: gstpad.c:3685:gst_pad_chain_data_unchecked:<adder:sink_0> Got data flow before segment event Unexpected critical/warning: gst_audio_buffer_clip: assertion `segment->format == GST_FORMAT_TIME || segment->format == GST_FORMAT_DEFAULT' failed Unexpected critical/warning: gst_segment_to_stream_time: assertion `segment->format == format' failed 0%: Checks: 1, Failures: 1, Errors: 0 gstcheck.c:75:F:general:test_flush_start_flush_stop:0: Unexpected critical/warning: gstpad.c:3685:gst_pad_chain_data_unchecked:<adder:sink_0> Got data flow before segment event
Note : This unit test sends flush start/stop from the main thread The problem is a race in gst_pad_push_data between: * (thread 1) the moment we check if sticky events should be carried over before pushing the buffer (this is the part that should take care of carrying over the stream-start and segment events). * (thread 2) the peer pad being flushed * (thread 1) gst_pad_chain_data_unchecked() being called on the peer pad
Still fails ... but differently now Running GST_CHECKS=test_flush_start_flush_stop make elements/adder.forever Running suite(s): adder Unexpected critical/warning: chain on pad adder:sink_1 but it has no chainfunction 0%: Checks: 1, Failures: 0, Errors: 1 gstcheck.c:75:E:general:test_flush_start_flush_stop:0: (after this point) Test timeout expired
> Unexpected critical/warning: chain on pad adder:sink_1 but it has no > chainfunction Just got this as well once. No idea how that can even happen..
This is still happening!
Created attachment 305196 [details] [review] collectpads: fix pad removal during active streaming This fixes the no chain func issue for me, but then we're back at the two issues from the original report (progress!).
Comment on attachment 305196 [details] [review] collectpads: fix pad removal during active streaming Leads to crashes in -good unit tests where the pads are removed from dispose and GST_IS_PAD fails in gst_pad_set_active().
I declare adder/collectpads unfixably broken. If no one has cared for 3 years, no one's going to fix this now and we should just disable this test. It seems to work fine with audiomixer after all.
commit 7c0ec13942bc59f6da75e432f6d3429b2dd5d9c1 Author: Tim-Philipp Müller <tim@centricular.com> Date: Sun Sep 25 16:22:16 2016 +0100 tests: adder: disable racy flush_start_flush_stop test It's been broken for years, and it's unlikely it will ever be fixed for collectpads/adder now that there's audiomixer which works fine. So let's disable it, since all it does is that it creates noise that distracts from other failures. https://bugzilla.gnome.org/show_bug.cgi?id=708891