Skip to content

fix(store): fence concurrent record reads - #7

Open
nstranquist wants to merge 5 commits into
mainfrom
test/windows-concurrency-diagnostics
Open

fix(store): fence concurrent record reads#7
nstranquist wants to merge 5 commits into
mainfrom
test/windows-concurrency-diagnostics

Conversation

@nstranquist

@nstranquist nstranquist commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • preserve complete typed error and recovery data for concurrent capture failures
  • stress 25 exact shared-lane capture iterations on each Windows CI job
  • serialize operational lane and lease reads with atomic record replacement
  • serialize the final durable commit receipt through the same registry fence
  • retain every source HEAD, index, path-isolation, ref, and intent assertion

Root cause

Hosted attempt 3 reproduced STORE_FAILED while Current/Status opened a lease record during another lane heartbeat replacement:
https://github.com/nstranquist/wip-commit/actions/runs/32035869370/attempts/3

Unix permits the rename window. Windows can reject the open with a sharing violation. The registry fence now covers both sides of that operation.

Verification

  • deterministic tests prove operational reads and RecordCommit wait for the registry fence
  • 100 local exact concurrency iterations passed
  • go test -count=1 ./...
  • go test -race -count=3 ./...
  • go vet ./...
  • actionlint
  • golangci-lint run ./...
  • gitleaks history and worktree scans
  • both initial hosted Windows jobs passed on the fixed head

Refs #6.

@nstranquist

Copy link
Copy Markdown
Owner Author

Windows stress attempt 3 reproduced the original failure with typed evidence: STORE_FAILED while Current/Status opened a lease record during another lane heartbeat atomic replacement. The operational reads and RecordCommit now use the same registry fence as lease replacement (11e1915), with deterministic fence tests plus 100 local concurrent capture iterations. Hosted Windows verification is running on the fix.

@nstranquist nstranquist changed the title test(windows): diagnose concurrent lane capture failures fix(store): fence concurrent record reads Aug 17, 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.

1 participant