Two records shared a number, twice, and every check passed #192

Merged
jschoubben merged 1 commits from issue/two-records-share-a-number-and-nothing-says-so into main 2026-09-29 21:39:09 +00:00
Owner

Renumbers the two records that landed on main colliding (149 and 150 -> 153 and 154), and adds the check that would have caught it.

Issue 155 records the gap: the number is max(main) + 1 and main lags every open PR, so two machines reading the same main allocate the same number. The second collision reached main with all three checks green.

Proven by adding a duplicate and watching cycle.py fail, then removing it and watching it pass.

Renumbers the two records that landed on main colliding (149 and 150 -> 153 and 154), and adds the check that would have caught it. Issue 155 records the gap: the number is `max(main) + 1` and main lags every open PR, so two machines reading the same main allocate the same number. The second collision reached main with all three checks green. Proven by adding a duplicate and watching cycle.py fail, then removing it and watching it pass.
jschoubben added 1 commit 2026-09-29 21:38:58 +00:00
Two machines filing issues in the same hour both read main correctly and
both took "the next free number". main lags every open pull request —
seven that evening — so they collided twice. The second collision
reached main with records, cycle and index all reporting success.

cycle.py now refuses a tree where two issue folders share a leading
number, and names both. Proven by adding a duplicate and watching it
fail. The colliding records become 153 and 154, renumbered in the branch
that lands last, because renumbering a branch whose author is still
pushing only moves the race.

The check catches a collision; it does not prevent one. Taking a number
still means reading the open pull requests as well as main — issue 155
says so.
jschoubben merged commit f89aef992d into main 2026-09-29 21:39:09 +00:00
jschoubben deleted branch issue/two-records-share-a-number-and-nothing-says-so 2026-09-29 21:39:09 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#192