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.
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Distinguish SQLITE_BUSY/timeouts from corruption; never delete the live DB on transient errors. AC: injected transient error does not trigger salvage/delete.
Quarantined a related flaky test while landing the green baseline:
nunciod::orchestrator::tests::orchestrator_recovers_corrupted_database_and_emits_eventis now#[ignore]d because DB-corruption detection intermittently races the WAL/file close in the recovery path (initialize_and_recoversometimes returnsNonefor a corrupted DB). Re-enable and de-flake this test as part of this issue's recovery-reliability work.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.