Skip to content

fix(wal): create answers 409 for an existing repository, warm handle or not - #19

Closed
dumontg wants to merge 1 commit into
imports/12-strict-envfrom
imports/13-create-conflict
Closed

dumontg wants to merge 1 commit into
imports/12-strict-envfrom
imports/13-create-conflict

Conversation

@dumontg

@dumontg dumontg commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Stacked on #18.

Imports tobi/walgit#101 by @jonasgrosch, unchanged.

Verified on the top of this stack: cargo clippy --workspace --all-targets -- -D warnings, cargo fmt --check, the crate test suites, and the Azure harness (just test-azure: store contract plus git push, clone, pull and cold restart on Azurite) pass. Known unrelated failures: the runtime stall timing tests in e2e (also intermittent on main) and the web UI asset tests that need pnpm run build.

…or not

`PUT /{owner}/{repo}` answered 201 for a repository that already existed
whenever this instance held its handle: `Registry::create` returned the
cached handle before the manifest Create PUT. A cold instance answered 409
for the same repository, so the answer depended on which host you hit.

The Create PUT is now the only authority (ROUNDTRIPS §3, "let the
conditional write be the read"): its 412 is AlreadyExists on every
instance, and a warm handle no longer masks a repository deleted by
another host (the create succeeds and replaces the stale handle).
`open_or_create` (auto_create_on_push, import) treats losing the create
race as success and opens the winner's repository — the same-instance
race used to be absorbed by the warm-handle shortcut.

Round trips: create of a new repository 1 → 1 (Create PUT); create of an
existing one 0 (warm) / 1 (cold) → 1 on both; auto-create unchanged, its
lost race adds only the open it needs. Pinned in the sim's
healthy_request_round_trip_budgets and the ROUNDTRIPS table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit f63c8ca)
@dumontg

dumontg commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

Landed on main in 8347913 (merge of the stack top 59b206f), so this PR's changes are on main.

@dumontg dumontg closed this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants