Tags and Properties for Check-in fde61b03b2
- branch=h8-readrot propagates to descendants
- closed added by [03d41ea29d] on 2026-07-23 14:42:24
- sym-h8-readrot propagates to descendants
- sym-trunk cancelled
|
2026-07-23
| ||
| 14:42 | • Edit [fde61b03b2]: Mark "Closed". artifact: 03d41ea29d user: dmestas | |
|
2026-07-20
| ||
| 03:29 |
Add online read-fault injection to the storage DST sweep
FaultyFile injected corruption only at crash/restart boundaries. Add a read_rot_pct knob: a read of an intact byte interns one offset in its span as permanently corrupt (payload-derived mask, never self-heals) -- a latent sector error surfacing at content() time on a store that opened clean, independent of any crash. A healthy disk draws nothing, so existing sweeps keep a byte-identical PRNG stream. New storage_sweep.readRotSweep joins the dst gate: after a healthy open, every content-bearing hash reads back either its exact bytes or a declared corruption error -- wrong bytes presented as success is SilentCorruption. The append open path re-runs each frame's whole-frame CRC per read, so latent rot is detected and the gate stays green. The verified-on-open read path (openReadOnly) trusts the scan-time CRC on an immutable-length assumption that bit rot violates; a test drives that path to prove the oracle fires SilentCorruption. Read-fault model follows TigerBeetle's storage-fault-injection lineage. closed check-in: fde61b03b2 user: dmestas tags: h8-readrot | |