Development record
TestARecordReadWithNoRunNamedAddressesTheNewerRunOfAReadmittedIssue (and its two siblings in drain_repace_test.go) fail about half the time: superseded() in drain_readmit.go treats a later entry of Runs as the newer run, and Runs is ordered by run id, but the readmittedRuns fixture opens both runs within one wall-clock second (its clock advances o.Now by minutes, which the run id does not read), so the two ids share their timestamp and order by the random suffix. CI failed PR 1137 on it on 2026-10-26 with run-2610261539014434 (newer) sorting before run-2610261539014869 (handed back): '2 runs are in progress'. In production two runs of one issue in one second are rare, so the defect is the ordering assumption more than the fixture.
TestARecordReadWithNoRunNamedAddressesTheNewerRunOfAReadmittedIssue (and its two siblings in drain_repace_test.go) fail about half the time: superseded() in drain_readmit.go treats a later entry of Runs as the newer run, and Runs is ordered by run id, but the readmittedRuns fixture opens both runs within one wall-clock second (its clock advances o.Now by minutes, which the run id does not read), so the two ids share their timestamp and order by the random suffix. CI failed PR 1137 on it on 2026-10-26 with run-2610261539014434 (newer) sorting before run-2610261539014869 (handed back): '2 runs are in progress'. In production two runs of one issue in one second are rare, so the defect is the ordering assumption more than the fixture.
Grounds
- declined: Duplicate: the same flake was filed as iss-2610261622501094 and fixed by PR 1142 (runs minted in one second now list in start order).
Frontmatter
| id | iss-2610261846399326 |
|---|---|
| type | issue |
| lifecycle | wontfix |
| severity | minor |
.abcd/work/issues/wontfix/iss-2610261846399326-testarecordreadwithnorunnamedaddressesth.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2610261622501094The implement loop lists a checkout's runs oldest first by sorting their ids, but a run id is the second it was minted in plus four random digits, so two runs started within one second come back in random order. superseded() then reads a handed-back run as the newer of the pair, both count as in progress, and a bare record read or step refuses with '2 runs are in progress'. TestARecordReadWithNoRunNamedAddressesTheNewerRunOfAReadmittedIssue failed this way in CI on 2026-10-26 on a records-only pull request (#1136).