Preflight ReFS MLog recovery before applying redo - #419
Merged
Merged
Conversation
Hawkynt
force-pushed
the
fix/refs-mlog-replay-preflight
branch
3 times, most recently
from
September 30, 2026 16:12
6557b0b to
615adc3
Compare
The parallel replayer ignored the checkpoint recovery boundary and applied parsed records before learning whether a later opcode or payload was unsupported. Route both entry points through checksum-verified recovery analysis, preflight the complete selected window, and reject links to missing live records. Synthetic redo-target tests cover late failures and ordered replay; no on-disk payload grammar is inferred.
Recovery analysis filtered invalid XOR-fold records, so a corrupt final live record could disappear and leave a replayable prefix. Select the checkpoint recovery window first, calibrate within it, and reject any checksum-failed live record before applying redo. Regression tests cover a failed final record and a stale failed record outside the window. This follows the existing LogCore checksum codec and checkpoint boundary; no new redo payload grammar is assumed.
The chain check began at record two, so a first selected record could point to a missing predecessor inside the checkpoint recovery window. Validate its link against the oldest required LSN before replay and cover the missing-first-record case with a regression. This uses the already-decoded LSN linkage; no opcode-specific payloads are inferred.
Hawkynt
force-pushed
the
fix/refs-mlog-replay-preflight
branch
from
September 30, 2026 18:09
260f83d to
c77c1eb
Compare
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.
What changed
Validation
git diff --checkpassed locally.This is recovery safety infrastructure, not a concrete version-qualified redo target or mounted write support. Unknown payload grammar remains refused.