1.B.4 Transient error is not corruption #155

Closed
opened 2026-07-27 00:26:39 +00:00 by KofTwentyTwo · 2 comments
KofTwentyTwo commented 2026-07-27 00:26:39 +00:00 (Migrated from github.com)

Distinguish SQLITE_BUSY/timeouts from corruption; never delete the live DB on transient errors. AC: injected transient error does not trigger salvage/delete.

Distinguish SQLITE_BUSY/timeouts from corruption; never delete the live DB on transient errors. AC: injected transient error does not trigger salvage/delete.
KofTwentyTwo commented 2026-07-27 00:57:05 +00:00 (Migrated from github.com)

Quarantined a related flaky test while landing the green baseline: nunciod::orchestrator::tests::orchestrator_recovers_corrupted_database_and_emits_event is now #[ignore]d because DB-corruption detection intermittently races the WAL/file close in the recovery path (initialize_and_recover sometimes returns None for a corrupted DB). Re-enable and de-flake this test as part of this issue's recovery-reliability work.

Quarantined a related flaky test while landing the green baseline: `nunciod::orchestrator::tests::orchestrator_recovers_corrupted_database_and_emits_event` is now `#[ignore]`d because DB-corruption detection intermittently races the WAL/file close in the recovery path (`initialize_and_recover` sometimes returns `None` for a corrupted DB). Re-enable and de-flake this test as part of this issue's recovery-reliability work.
KofTwentyTwo commented 2026-07-27 04:02:55 +00:00 (Migrated from github.com)

Done on dev (ec07711): transient errors no longer trigger destructive salvage (allowlist classification + real SQLITE_BUSY test); and the flaky recovery test is de-flaked (deferred-WAL-checkpoint root cause; wal_checkpoint(TRUNCATE) on close; 130 runs 0 failures) and re-enabled.

Done on `dev` (ec07711): transient errors no longer trigger destructive salvage (allowlist classification + real SQLITE_BUSY test); and the flaky recovery test is de-flaked (deferred-WAL-checkpoint root cause; wal_checkpoint(TRUNCATE) on close; 130 runs 0 failures) and re-enabled.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#155