Ahmett101
dc8044c086
fix(state): quarantine a state.db whose page 0 is not SQLite, not just a zeroed one
...
Startup only quarantined a 0-byte / all-NUL state.db. A file whose first page
was clobbered with record bytes (#102198 ) went straight to sqlite3.connect,
which raised "file is not a database" and deleted the -wal sidecar — the one
piece of evidence that could have been recovered.
`has_invalid_sqlite_header_preopen` generalises the zeroed probe (zeroed is a
subset of "no SQLite header"; same live-connection contract, never raises).
`quarantine_invalid_state_db` moves the file AND its -wal/-shm aside as
`state.db.<zeroed|notadb>-<ts>-<pid>.bak` before anything opens it; a fresh
DB is created as before.
Re-authored on current main (the quarantine helpers moved to
hermes_state_dbfile.py in d15c61b5dc ); one regression test proves the
notadb case is quarantined with its sidecars and the new DB passes
integrity_check.
Refs #102198 (the write-after-SIGTERM that clobbers page 0 is not addressed
here; this preserves the evidence instead of destroying it).
2026-09-09 18:25:11 +05:30
..
2026-09-07 04:46:04 -07:00
2026-09-03 15:50:55 -07:00
2026-09-09 17:04:30 +05:30
2026-09-06 07:19:21 -07:00
2026-09-08 13:39:17 -07:00
2026-09-03 13:22:51 -07:00
2026-08-24 15:54:23 +05:30
2026-09-09 04:32:13 -07:00
2026-09-03 14:21:52 -07:00
2026-08-26 07:28:10 -07:00
2026-09-03 17:28:02 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 23:55:56 -07:00
2026-08-31 01:04:11 -07:00
2026-09-09 13:06:23 +05:30
2026-09-09 04:32:13 -07:00
2026-09-09 13:17:19 +05:30
2026-09-07 08:12:23 -07:00
2026-09-07 10:24:17 +02:00
2026-09-04 00:53:42 -07:00
2026-09-03 13:38:36 -07:00
2026-09-03 13:29:35 -07:00
2026-09-01 14:11:55 +05:30
2026-08-28 11:54:33 +05:30
2026-09-09 03:52:47 -07:00
2026-09-07 06:06:46 -07:00
2026-09-03 13:38:36 -07:00
2026-09-09 17:45:12 +05:30
2026-09-06 13:27:48 -07:00
2026-09-02 10:33:43 -07:00
2026-09-08 13:39:01 -07:00
2026-09-09 12:19:58 +05:30
2026-09-09 02:36:00 -07:00
2026-09-09 02:00:21 -07:00
2026-09-09 02:35:41 -07:00
2026-09-04 07:17:00 -07:00
2026-09-01 09:28:01 -07:00
2026-09-03 13:28:22 -07:00
2026-08-24 15:37:22 +05:30
2026-08-31 09:56:43 -07:00
2026-08-31 12:36:33 -07:00
2026-09-07 22:47:33 +05:30
2026-08-24 03:21:07 -07:00
2026-08-24 03:21:07 -07:00
2026-09-02 19:20:44 -07:00
2026-09-03 14:21:52 -07:00
2026-09-02 13:29:46 -07:00
2026-09-06 22:45:31 +05:30
2026-09-03 13:29:55 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:28:22 -07:00
2026-09-02 19:53:29 -07:00
2026-09-07 06:09:56 -07:00
2026-09-01 08:36:03 -07:00
2026-09-08 17:13:48 -07:00
2026-08-26 18:23:33 -07:00
2026-09-02 00:44:19 -07:00
2026-09-08 17:13:48 -07:00
2026-08-31 10:05:13 -07:00
2026-09-06 07:19:21 -07:00
2026-08-28 05:45:00 -07:00
2026-09-05 02:31:06 -07:00
2026-08-28 12:20:40 -07:00
2026-09-02 06:19:03 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 15:03:42 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 05:03:04 +05:30
2026-08-31 09:56:43 -07:00
2026-09-02 15:03:42 -07:00
2026-09-03 13:46:50 -07:00
2026-09-08 02:27:24 +05:30
2026-09-03 02:06:56 +05:30
2026-09-02 15:03:42 -07:00
2026-09-03 16:35:01 -07:00
2026-08-31 09:56:04 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:16:47 -07:00
2026-08-31 10:00:38 -07:00
2026-09-02 17:26:25 -04:00
2026-09-01 09:28:01 -07:00
2026-08-23 18:27:21 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-31 10:00:55 -07:00
2026-08-31 10:53:18 -07:00
2026-08-31 10:53:18 -07:00
2026-09-01 11:25:10 -07:00
2026-08-28 12:36:15 -07:00
2026-09-03 13:48:14 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 15:07:39 -07:00
2026-09-02 17:07:24 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:48:49 -07:00
2026-09-05 12:21:21 +05:30
2026-09-03 13:28:22 -07:00
2026-08-31 10:03:34 -07:00
2026-09-03 17:45:53 -07:00
2026-09-04 04:56:11 -07:00
2026-09-04 01:28:31 -07:00
2026-09-04 20:24:24 -04:00
2026-09-04 20:24:24 -04:00
2026-09-03 19:33:28 -07:00
2026-09-03 14:21:52 -07:00
2026-08-31 05:56:18 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 09:56:04 -07:00
2026-08-25 23:15:49 -07:00
2026-09-03 14:21:52 -07:00
2026-09-07 06:04:23 -07:00
2026-09-03 13:46:50 -07:00
2026-09-02 07:26:52 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:10:52 -07:00
2026-09-03 16:35:01 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 09:58:40 -07:00
2026-09-05 12:21:21 +05:30
2026-09-05 17:00:18 -07:00
2026-08-27 11:26:57 +05:30
2026-09-09 02:35:41 -07:00
2026-08-24 04:01:53 -07:00
2026-09-03 14:21:52 -07:00
2026-09-03 14:21:52 -07:00
2026-09-07 08:23:08 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-09 18:25:11 +05:30