docs(ssi): restore the serializability guarantee now that #136–#140 are fixed and gated - #152
Merged
Merged
Conversation
…re fixed and gated PR #141 deliberately retracted these claims BEFORE the fixes landed, so we would not keep shipping a promise the code did not keep. All five externally reported defects are now fixed, and the RFC's own condition for retiring the limitations block -- 'removed only when each item is fixed *and* covered by a test' -- is met. RFC 0003: - Replaced the 'best-effort, not absolute' block with a table recording each issue, its fix, and the CI-gated tier that now guards it (#136 -> isolation, #137/#138 -> soak, #140 -> lockmatrix), plus the third leak (si_ref on a SIREAD->WRITE upgrade) that validation surfaced and no report mentioned. - Recorded the root-cause class and its permanent guard: a new DB_LOCK_* mode now fails CI unless the inventory is updated. - Recorded that the different-pages-of-one-btree symptom was NOT a second defect: two independent constructions show the control timing detects the conflict correctly, so it was the same commit-window race. - Reclamation is now stated as bounded, with test/soak named as the evidence. txnbegin.md: the user-facing caveat becomes 'Fixed after 5.3.34' with an upgrade recommendation, rather than a standing limitation. Gates: build ok, selfcheck ok, man coverage PASS, spelling PASS (no new typos), lychee 17043 links / 0 errors.
Coccinelle convention checksNo new violations. ✅ Resolved since baseline (2) -- update dist/cocci/baseline.txt to lock these in. |
ABI diff vs
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Completes the arc opened by #141. That PR retracted the SSI serializability claims before any fix landed, deliberately, so the project stopped shipping a guarantee the code did not honor. All five externally reported defects are now fixed and each has a regression test running in CI, so RFC 0003's own condition for retiring its limitations block — "removed only when each item is fixed and covered by a test" — is satisfied.
RFC 0003
test/isolation, libdb 5.3.34: sequential read-only DB_TXN_SNAPSHOT transactions eventually cause DB_ENV->txn_begin to return ENOMEM #137 + libdb 5.3.34: __txn_reap_si_details leaks MVCC mutex slots during snapshot cleanup #138 →test/soak, libdb 5.3.34: incomplete replication commit lock lists can violate client transaction isolation #140 →test/lockmatrix. Also records the third leak (si_refnot decremented on a SIREAD→WRITE upgrade in__lock_get_internal) that validation surfaced and no external report mentioned.DB_LOCK_*now fails CI unlessdist/cocci/lockmode_inventory.shis updated.DB_SNAPSHOT_CONFLICTcorrectly, so it was the same commit-window race.test/soakas the evidence rather than asserting it.txnbegin.md
The user-facing caveat becomes "Fixed after 5.3.34" with an explicit upgrade recommendation, instead of a standing limitation.
Gates
build.pyok ·--selfcheckok · man coverage GATE PASS · spelling GATE PASS (no new typos) · lychee 17043 links, 0 errors.Docs-only; no code.