Skip to content

fix(engine): fail closed on invalid epochs - #85

Merged
vishr merged 1 commit into
mainfrom
fix/fail-closed-fencing-epochs
Aug 21, 2026
Merged

fix(engine): fail closed on invalid epochs#85
vishr merged 1 commit into
mainfrom
fix/fail-closed-fencing-epochs

Conversation

@vishr

@vishr vishr commented Aug 21, 2026

Copy link
Copy Markdown
Member

Summary

  • refuse unreadable, malformed, negative, and overflowing fencing epochs
  • persist application and backup epochs through atomic sibling-file replacement
  • add matching matrices, real-shell lifecycle coverage, Linux VM validation, and recovery docs

Verification

  • just check
  • just lint
  • go test -race ./internal/engine
  • full engine test binary on OrbStack Ubuntu 24.04 arm64

Closes #55

Preserve fencing monotonicity by accepting only absent or valid durable epoch state and replacing epoch files atomically.

Closes #55
@vishr
vishr merged commit 95c6fd7 into main Aug 21, 2026
5 checks passed
@vishr
vishr deleted the fix/fail-closed-fencing-epochs branch August 21, 2026 16:42
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.

Fencing epochs fail open on unreadable or malformed state

1 participant