Skip to content

WAL mid-file CRC must not drop later DIRTY marks - #90

Merged
jaredLunde merged 3 commits into
beyondoss:mainfrom
paulocsanz:dst/b23-wal-mid-crc
Aug 15, 2026
Merged

WAL mid-file CRC must not drop later DIRTY marks#90
jaredLunde merged 3 commits into
beyondoss:mainfrom
paulocsanz:dst/b23-wal-mid-crc

Conversation

@paulocsanz

Copy link
Copy Markdown
Contributor

Same 20 B CRC32-iSCSI frames as rustlib/wal. Replay stopped at the first CRC miss, then WriteCache::open rewrote only the prefix (60 B → 20 B) and deleted later seqs. Recovery never marked those blocks DIRTY.

Two commits: tests that fail on main (mid-file and first-record CRC), then skip-one-record on InvalidData. Torn short reads still stop.

git checkout HEAD~1 && cargo test --lib test_wal_crc_corruption fails; HEAD passes.

Same 20 B CRC32-iSCSI frames as rustlib/wal. Flip record 2 (or record 1); later CRC-ok seqs must survive. This fails on current main.
Same 20 B framing. Mid-file CRC miss used to look like a torn tail, so WriteCache::open rewrote only the prefix and deleted later seqs.
@jaredLunde
jaredLunde merged commit cecbe4c into beyondoss:main Aug 15, 2026
24 of 25 checks passed
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