Andrew Zonenberg on Nostr: So the actual bug here, I think, was that when I got an ECC uncorrectable error ...
So the actual bug here, I think, was that when I got an ECC uncorrectable error during the compact operation, I'd discard the wrong block of data. I think it's fixed, time to fuzz more and see...
I'm definitely making progress squishing bugs, early on I was getting instant failures after only a few seconds of fuzzing and they're now far less common with fairly long time intervals between breakage.
Every so often, glancing at the console, I see uncorrectable ECC errors getting logged but it's successfully recovered in every case with this latest code and the object store remained consistent.
Also found and fixed a bug causing excessive padding to bloat log entries by 8-16 bytes depending on flash write block size. This will break compatibility with existing flash images on STM32L431 but I can live with that given that I only have one project using it on STM32L431 at the moment and the only usage of the KVS is for bootloader firmware revision data.
Published at
2024-06-21 22:45:47Event JSON
{
"id": "eb25379af3c2e633af6b0957c5974c0a2634e9ee868fd1cd5f840ee1bba10ac0",
"pubkey": "70517381ab3c382310e957f900da12ab82d4ba917641561da3f7fe00c57e52db",
"created_at": 1719009947,
"kind": 1,
"tags": [
[
"proxy",
"https://ioc.exchange/@azonenberg/112657035896041810",
"web"
],
[
"p",
"70517381ab3c382310e957f900da12ab82d4ba917641561da3f7fe00c57e52db"
],
[
"e",
"b5f154311cf6af7a0d89c7f93aa49a07fdce6057380778e30a39b80f19488abe",
"",
"root"
],
[
"proxy",
"https://ioc.exchange/users/azonenberg/statuses/112657035896041810",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://ioc.exchange/users/azonenberg/statuses/112657035896041810",
"pink.momostr"
],
[
"expiration",
"1721622678"
]
],
"content": "So the actual bug here, I think, was that when I got an ECC uncorrectable error during the compact operation, I'd discard the wrong block of data. I think it's fixed, time to fuzz more and see...\n\nI'm definitely making progress squishing bugs, early on I was getting instant failures after only a few seconds of fuzzing and they're now far less common with fairly long time intervals between breakage.\n\nEvery so often, glancing at the console, I see uncorrectable ECC errors getting logged but it's successfully recovered in every case with this latest code and the object store remained consistent.\n\nAlso found and fixed a bug causing excessive padding to bloat log entries by 8-16 bytes depending on flash write block size. This will break compatibility with existing flash images on STM32L431 but I can live with that given that I only have one project using it on STM32L431 at the moment and the only usage of the KVS is for bootloader firmware revision data.",
"sig": "93f4ed6b559069362755e1452f693432568a7840646b8a7e49b7fdd5cae6f7c92b29b05b6f56deddd2717bdee40d01537dfbb3ed09381a31b74164cedcf92074"
}