Round-2 review fixes: fsync+unique temp in boot_guard, raw-bytes digest in verify, lock in chain.advance - #2
Merged
Conversation
…st in verify, lock in chain.advance
- boot_guard._atomic_write: per-write uuid temp suffix (concurrent writers
no longer share one temp file), flush+fsync before os.replace so a power
cut cannot leave a 0-byte state file, orphaned temp removed on failure.
- tools.verify: receipt digest now hashes the raw stdout bytes instead of
the decode('replace')-re-encoded copy, so non-UTF-8 output is described
faithfully.
- providers.chain: advance() takes an asyncio.Lock so the check-and-advance
transition is atomic when concurrent failures race; the contract makes
advance async precisely because a rung may be materialised with awaits.
Tests: new test_boot_guard.py (temp uniqueness, cleanup, write->flush->
fsync->replace order), concurrent-advance test in test_provider_chain.py,
raw-bytes digest test in test_checkpoints_verify_learning.py.
189 unit passed, 1 skipped; 3 smoke passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses the three points raised in the code-review thread (reply to PR #1):
Tests: new tests/unit/test_boot_guard.py (temp uniqueness, cleanup on failure, write→flush→fsync→replace order), a concurrent-advance test in test_provider_chain.py, and a raw-bytes digest test in test_checkpoints_verify_learning.py.
Checked: 189 unit tests passed, 1 skipped; 3 smoke tests passed.Verification receipts: none — nothing in this proposal was checked with Verify.