mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-24 20:28:06 +02:00
fix(db): fast-fail Indexer::init on non-SQLite files via magic-header preflight
This commit is contained in:
parent
946cb6a9bc
commit
8abb023dd0
11 changed files with 648 additions and 17 deletions
|
|
@ -189,11 +189,10 @@ fn garbage_header_db_returns_structured_error() {
|
|||
}
|
||||
|
||||
// NOTE: A mid-file corruption test (garbage at bytes 100..200, preserving
|
||||
// SQLite magic) was attempted and is deliberately omitted. That shape
|
||||
// triggers a slow corruption-detection path in SQLite where `Indexer::init`
|
||||
// takes 150–200 seconds before returning, unsuitable for CI wall-clock
|
||||
// budgets. The two tests above already cover the "corrupt-on-arrival"
|
||||
// cases that users actually hit (crash-truncated file, deliberate clobber).
|
||||
// A follow-up should either short-circuit `PRAGMA integrity_check` up
|
||||
// front or wrap the init path in a timeout so mid-page corruption
|
||||
// also fails fast.
|
||||
// SQLite magic) is still omitted. `Indexer::init` short-circuits on
|
||||
// header-magic mismatch (see `preflight_header`), so the corrupt-on-arrival
|
||||
// shapes users actually hit return in microseconds. Mid-page damage that
|
||||
// preserves the magic header still falls into SQLite's slow corruption
|
||||
// detection path (150-200s), which is too long for CI wall-clock budgets;
|
||||
// detecting that shape would require running `PRAGMA quick_check` with an
|
||||
// interrupt callback, which is out of scope here.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue