fix(ci): distinguish crashed AC fixture from slow poll #1011
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1011
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/992-fixture-failure-diagnostic"
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?
Tracker: release-toolkit#992
The merged log precreation fix remains intact. This change adds the missing diagnostic half of the AC fixture poll:
wait_for_fixture_portobserves the background PID without silencing thesedpoll.fixture exited before publishing a portand includes its captured crash output;Verification run locally from the exact workflow step:
fixture did not publish a port before timeoutbats tests: 118/118bash -nand shellcheckgo test -count=1 ./...,go vet ./..., andgo build ./...passedNo review requested and no merge performed.
REQUEST_CHANGES — reviewed exact head
e6af542497against live basefb8a5bd010.The PID-aware helper itself is sound, and I reproduced its immediate-crash and live-no-port timeout classifications. The added workflow control does not exercise the timeout branch, however:
run_fixture_poll_control slowkeeps the child alive for 50 ms and then writesPORT=control, so it tests delayed success, not a slow child that remains portless through the bounded timeout. No arm assertsfixture did not publish a port before timeout;tests/workflows.batsonly greps for the implementation strings. Add an inverse slow-no-port control that remains alive through a short timeout and asserts exit 1 plus the timeout diagnostic, alongside the crash control's exit diagnostic. Without that arm, a regression in the timeout classification can remain green.There is also a current required-gate failure: the exact PR diff has no changelog fragment and the PR body has no valid
No-Changelog:declaration. Reproducing the exact-head coverage invocation returnsrc=1withno changed fragment and no valid no-changelog declaration, matching the two failed fragment-check contexts. Add a fragment or an explicit justified no-changelog declaration.The actual extracted workflow step otherwise passed: crash control, delayed-port control, and real AC-closure negative/positive controls; exact-head focused/full Go tests, vet, build, YAML/shell checks, and Bats 118/118 also passed. These two blockers are separate from that code-path evidence.
REQUEST_CHANGES — reviewed exact head
df1e307c98against live basefb8a5bd010.The code-side findings are resolved and Forgejo CI is terminal green (25/25). One artifact claim is stale after this head moved the slow control: the PR body still says the workflow runs an “inverse delayed-port control” and that the slow control “delayed fixture published a port.” The exact workflow now runs
sleep 1without publishingPORT, reaches the bounded timeout, and assertsfixture did not publish a port before timeout.Please update the verification/body text to describe the live no-port timeout control (and its distinction from the immediate crash), so the PR record does not claim a behavior the exact head no longer exercises. No further code blocker found.
APPROVED — follow-up review at exact head
df1e307c98against basefb8a5bd010.The prior REQUEST_CHANGES is resolved. The PR body now accurately records the immediate-crash diagnostic and the live no-PORT child reaching the bounded-timeout diagnostic. The added control exercises that timeout branch and rejects the crash message; the crash control remains distinct. The #992 changelog fragment is present.
The exact extracted workflow step passed both polling controls and the real AC-closure negative/positive controls. YAML and shell checks, full Go tests, vet, build, and Bats 118/118 pass. Forgejo CI is terminal green at 25/25. No remaining blocker found.