generated from erix/meta
[BUG] Sequential scenario checks can encounter an active-run lock after success #16
Labels
No labels
bug
ci
docs
duplicate
enhancement
help wanted
invalid
performance
phase-6
question
refactor
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
erix/integration#16
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
A sequence of scenario-runner regression checks stopped with an active-run lock error immediately after the preceding scenario had reported success. This prevents the rest of the Integration regression workflow from running.
Reproduction
Observed once in Integration push CI run 1559 at
e7995dc7a2cb32bcc13a923c473e1d5c0e731303, duringbash tests/run-scenario-bootloader-negative-timeout.sh. The fixture invokes the actual scenario runner sequentially in its own temporary harness. Two default-timeout invocations passed; the next invocation exited before executing its scenario.A deterministic host fixture now holds the actual catalog producer after it emits rows. Original runner bytes return success before that producer exits; a following invocation receives exit 75 while the helper retains the lock. The same original runner also hides producer exit 37 after plausible output. This establishes a matching defect, while the exact historical CI process schedule remains unrecorded.
Expected and actual behavior
Each completed invocation should leave the sequential fixture able to acquire its run lock. Concurrent invocations must still be excluded.
Actual result: the runner reported
error: another integration scenario run is activeand exited 75. The workflow stopped before the complete VM catalog. There was no reported VM timeout in this fixture; the fixture uses original test stubs for its bootloader command.Environment and identity
e7995dc7a2cb32bcc13a923c473e1d5c0e731303,feature/posix-compat.c86c0d89; this does not establish the first faulty revision or rule out a pre-existing race.Evidence and prior checks
Failing CI run 1559 reports two successful default-timeout scenarios, the lock error and exit 75. The complete retained job log contains no build warnings. Other intentional negative-fixture errors are distinct from this terminal failure. Companion Rust and Markdown jobs passed.
The correction at signed revision
2ae6c9cd34cd456c568e5f61976879902b73d9f6synchronously captures the complete catalog and propagates producer status before lookup. It preserves standalone/group lock ownership and concurrent exclusion. Four new tests pass; exact original runner bytes fail three of them. Twelve focused existing runner/schema/worker and syntax/documentation checks pass without warnings. Test cleanup uses bounded owned-child reaping. Full new-head CI is queued and remains required; no lock bypass, cancellation, production delay or retry is used.Tracking
Related work: #2, #11 and WIP PR #12. Acceptance requires a deterministic regression protecting lock lifetime and concurrent exclusion, a reviewed correction preserving cleanup/error behavior, warning-free relevant checks and full exact-revision CI. Keep previous failing evidence and unexecuted regressions explicit.
erikinkinen referenced this issue2026-09-12 11:24:43 +02:00