Fix #397: CI flakes #404

Merged
crueber merged 1 commit from fix/issue-397 into main 2026-09-12 18:58:41 +00:00
Owner

De-flakes the five test-contract bugs behind the intermittent coverage-gate failures (6 of the last 20 docker runs). Full evidence + per-flake mechanism in the commit and docs/go/15_testing.md (law 12). Acceptance: exact CI failing tests captured on #397; RegisterKind leak fixed (-count=3 green with -race); resume/claim reviewed (already polled, no change); retry-guardrail ruling documented (fix flakes, no retry stanza); global-state sweep done (only the two kinds maps); 10 consecutive -race green runs of repoimport/mirror/notify/server. Do NOT merge pending green docker workflow.

De-flakes the five test-contract bugs behind the intermittent coverage-gate failures (6 of the last 20 docker runs). Full evidence + per-flake mechanism in the commit and docs/go/15_testing.md (law 12). Acceptance: exact CI failing tests captured on #397; RegisterKind leak fixed (-count=3 green with -race); resume/claim reviewed (already polled, no change); retry-guardrail ruling documented (fix flakes, no retry stanza); global-state sweep done (only the two kinds maps); 10 consecutive -race green runs of repoimport/mirror/notify/server. Do NOT merge pending green docker workflow.
Pulled the failing GitHub Actions logs (runs 34706117288, 34703319547,
34702662651, 34665749100, 34664505073, 34664382868): five distinct
test-contract flakes, all fixed without weakening any pin —
TestBeginOnMirrorIs409 + TestCreateFromURLOwnerAdmission join background
clone/sync work before TempDir cleanup (was: RemoveAll 'directory not
empty'); TestSSEWriterKeepalive* poll up to the expected goroutine count
(was: immediate NumGoroutine assert pinning scheduling); token tamper
tests use deterministic tamperWireMAC (trailing-b64url substitution
could decode to the identical HMAC); RegisterKind maps gain test-only
ResetKindsForTest so -count=N no longer panics outside the recover.
Retry-guardrail ruling: fix flakes, no retry stanza (15_testing.md).
Sign in to join this conversation.
No description provided.