This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

Several sessions' make preflight runs overlap on one machine with nothing to space them out, and the overlap fails gates on tests no lane touched. On 2026-10-10 evening, two other sessions' full test suites were running at once (two go-build trees, a dozen .test binaries at 40-80% CPU each) and the one-minute load reached 124 on 16 cores. Four drain lanes in a row then lost a preflight run to load-only timeouts: TestAnIssueLaneLandsOnePullRequestThatResolvesItsIssue and TestAClosedPullRequestIsRefusedAndNothingIsCleanedUp (internal/core/implement/loop), and two internal/core/interview tests ('WaitDelay expired'). Each passed alone. The preflight load check (implement load --site preflight) warns above four times the core count but never waits, so every lane pays a re-run of about 20 minutes, and a lane whose re-run also lands in a peak has its receipt refused.

issueresolvedminoriss-2610102020442624

Several sessions' make preflight runs overlap on one machine with nothing to space them out, and the overlap fails gates on tests no lane touched. On 2026-10-10 evening, two other sessions' full test suites were running at once (two go-build trees, a dozen .test binaries at 40-80% CPU each) and the one-minute load reached 124 on 16 cores. Four drain lanes in a row then lost a preflight run to load-only timeouts: TestAnIssueLaneLandsOnePullRequestThatResolvesItsIssue and TestAClosedPullRequestIsRefusedAndNothingIsCleanedUp (internal/core/implement/loop), and two internal/core/interview tests ('WaitDelay expired'). Each passed alone. The preflight load check (implement load --site preflight) warns above four times the core count but never waits, so every lane pays a re-run of about 20 minutes, and a lane whose re-run also lands in a peak has its receipt refused.

Evidence 2026-10-11: a hand-written gate deadlocks, then releases together

Without the slot, sessions wrote their own waits, and the obvious one fails. A waiter written as bash -c '... pgrep -f "go test -race" ...' finds its own command line, which contains the pattern, so the gate never opens. Several sessions' waiters, and the briefs given to their sub-agents, used that form on 2026-10-11 and sat for hours. When they were stopped or edited they released within minutes of each other: four race runs started together (run-2610111657111142 lane-1, run-2610111657473488 lane-1, run-2610110908176735 lane-2, and a security lane), and the one-minute load reached about 500 to 920 on 16 cores at about 18:45 local time.

The anchored form, pgrep -f '(^|/)go test -race', does not match its own shell. Even so, a load gate alone let five preflights start in one quiet minute, and one timed out. Since then the sessions on this machine have used a hand-agreed rule: one preflight at a time, started only when the one-minute load is under 48, no (^|/)go test -race and no (^|/)make preflight is running, then a random wait of 15 to 60 seconds and a re-check of all three. That rule is the slot this record asks for, kept by hand. The remedy should ship it as one primitive that every session and every sub-agent brief reaches, and the LOAD rule should name the anchored pattern until it does.

Frontmatter

idiss-2610102020442624
typeissue
lifecycleresolved
severityminor