3bdc2165c3
Follow-up to the salvaged repair-durability commit. Scope corrections so this PR ships only the reachable, non-competing, WAL-mode-correct half: - Drop verify_state_db_integrity() + its 4 tests. Zero production callers here (dead code); the caller lives in the follow-up that wires it into SessionStore._open_session_db_for_active_scope() (PR #91754). The function moves with its wiring. - Drop the _db_fingerprint change (size:mtime_ns -> dev:ino:size) + its 3 ledger tests. This is competing work: PR #88425 (salvage of @jirathip-k's #88224) already fixes the same size:mtime_ns budget-reset bug with a content-sample + volatile-header-mask that also handles the DELETE-mode commit-counter case, and carries @jirathip-k's diagnosis/credit. Landing a second, divergent fingerprint contract would stomp that lineage. Fingerprint stays with #88425; this PR reverts _db_fingerprint to main's form. - Mark test_repair_refuses_while_another_connection_holds_the_db requires_wal. _live_writer_holds_db detects an out-of-process holder via the WAL-index exclusive lock, absent in journal_mode=DELETE (used on WAL-reset-vulnerable SQLite <3.51.3 incl. CI's 3.50.4, and on NFS/SMB). The test failed there; the conftest requires_wal gate auto-skips it. DELETE-mode limitation is now documented on the guard docstring: repair is serialised only by the cross-process repairer lock there. The reported incident was in WAL mode. - Map dhanesh@users.noreply.github.com -> dhanesh (contributors/emails) so the attribution CI gate passes. Net: this PR is repair-connection durability barriers + the live-writer guard. addresses @andrexibiza's #90747 review (dead-code verifier + fingerprint interlock with #88425).
Contributor email → GitHub login mappings
This directory replaces appending entries to AUTHOR_MAP in
scripts/release.py. The old dict caused constant merge conflicts when
several salvage PRs landed at once — every PR edited the same lines of the
same file. Here, each mapping is its own file, and file additions never
conflict.
Adding a mapping
One file per commit-author email, under emails/:
python3 scripts/add_contributor.py <email> <github-login>
# or by hand:
echo "<github-login>" > contributors/emails/<email>
- File name = the exact commit-author email (as shown by
git log --format='%ae'). - File content = the GitHub login on the first non-comment line.
Lines starting with
#are comments (use them for the PR reference).
Example — contributors/emails/jane.doe@example.com:
janedoe
# PR #12345 salvage (gateway: fix session key routing)
Rules
- Do NOT add new entries to
AUTHOR_MAPinscripts/release.py. That dict is frozen legacy data; the release tooling merges it with this directory (directory entries win on duplicates). - GitHub noreply emails (
<id>+<login>@users.noreply.github.comand<login>@users.noreply.github.com) auto-resolve — no file needed. - The
Contributor Attribution CheckCI job fails a PR whose commits carry an unmapped email; the failure message prints the exact command to run.