Problem
test_repeated_suites_run_the_union_of_their_paths in
tests/acceptance/bashunit_suites_test.sh has failed twice today on unrelated
PRs, both times only on Bash 3.0 jobs:
Both re-ran green, so each occurrence costs a cycle and a human deciding the
red tick is not about the change.
What I could and could not establish
- Not reproducible in isolation: 5/5 clean running just that file under a
real Bash 3.0 build (--parallel --simple --strict).
- Only ever seen inside the full CI suite, which suggests contention rather
than anything in the fixture: the test writes a small project into a per-test
temp dir and runs nested bashunit invocations against it.
- The union case is the one that fails, and it is the one that merges two
suites whose options conflict (parallel = true from one, no-parallel = true from the other), so which mode the nested run ends up in depends on
argv order.
That last point is the thread worth pulling: if the nested run can end up
parallel, two workers sourcing the same fixture concurrently on Bash 3.0 would
explain an intermittent "failed to source" that never appears when the file is
run on its own.
Problem
test_repeated_suites_run_the_union_of_their_pathsintests/acceptance/bashunit_suites_test.shhas failed twice today on unrelatedPRs, both times only on Bash 3.0 jobs:
✗ Error: Source — Failed to source 'tests/acceptance/b_test.sh' (exit 1)Expected 'Running tests/unit/a_test.sh…'Both re-ran green, so each occurrence costs a cycle and a human deciding the
red tick is not about the change.
What I could and could not establish
real Bash 3.0 build (
--parallel --simple --strict).than anything in the fixture: the test writes a small project into a per-test
temp dir and runs nested
bashunitinvocations against it.suites whose options conflict (
parallel = truefrom one,no-parallel = truefrom the other), so which mode the nested run ends up in depends onargv order.
That last point is the thread worth pulling: if the nested run can end up
parallel, two workers sourcing the same fixture concurrently on Bash 3.0 would
explain an intermittent "failed to source" that never appears when the file is
run on its own.