Andrew Zonenberg on Nostr: New bug: it appears the write of A to cc8b committed, but the prior write of B to ...
New bug: it appears the write of A to cc8b committed, but the prior write of B to cc8a did not, leading to an inconsistent state where abs(A-B) != 1 (the two values are supposed to be leapfrogging with one always incrementing by two above the other).
This seems to be triggered by an uncorrectable ECC error during a compact operation.
I'm not yet sure how I want to handle this and will need to dump the flash to be sure. One possible option is to, during a compact, ignore all log entries newer than a corrupted entry? That would provide a clean rollback but risks losing data.
Better question is why I wrote cc8b if cc8a hadn't committed fully. Going to have to look at the flash and debug a bit to see what's going on.
This seems to be triggered by an uncorrectable ECC error during a compact operation.
I'm not yet sure how I want to handle this and will need to dump the flash to be sure. One possible option is to, during a compact, ignore all log entries newer than a corrupted entry? That would provide a clean rollback but risks losing data.
Better question is why I wrote cc8b if cc8a hadn't committed fully. Going to have to look at the flash and debug a bit to see what's going on.