03/02/2023 16:03, Van Haaren, Harry:
> From: Van Haaren, Harry
> > > The timeout approach just does not have its place in a functional test.
> > > Either this test is rewritten, or it must go to the performance tests
> > > list so that we stop getting false positives.
> > > Can you work on this?
> > 
> > I'll investigate various approaches on Thursday and reply here with 
> > suggested
> > next steps.
> 
> I've identified 3 checks that fail in CI (from the above log outputs), all 3 
> cases
> Have different dlays: 100 ms delay, 200 ms delay and 1000ms.
> In the CI, the service-core just hasn't been scheduled (yet) and causes the 
> "failure".
> 
> Option 1)
> One option is to while(1) loop, waiting for the service-thread to be 
> scheduled. This can be
> seen as "increasing the timeout", however in this case the test-case would be 
> errored
> not in the test-code, but in the meson-test runner as a timeout (with a 10sec 
> default?)
> The benefit here is that massively increasing (~1sec or less to 10 sec) will 
> cover all/many
> of the CI timeouts.
> 
> Option 2)
> Move to perf-tests, and not run these in a noisy-CI environment where the 
> results are not
> consistent enough to have value. This would mean that the tests are not run 
> in CI for the
> 3 checks in question are below, they all *require* the service core to be 
> scheduled:
> service_attr_get() -> requires service core to run for service stats to 
> increment
> service_lcore_attr_get() -> requires service core to run for lcore stats to 
> increment
> service_lcore_start_stop() -> requires service to run to to ensure 
> service-func itself executes.
> 
> I don't see how we can "improve" option 2 to not require the service-thread 
> to be scheduled by the OS..
> And the only way to make the OS schedule it in the CI more consistently is to 
> give it more time?

We are talking about seconds.
There are setups where scheduling a thread is taking seconds?

> Thoughts and input welcomed, I'm happy to make the code changes themselves, 
> its small effort
> For both option 1 & 2.

For time-sensitive tests, yes they should be in perf tests category.
As David said earlier, no timeout approach in functional tests.



Reply via email to