Repository navigation
engine: MN-REQ-05.5 post-merge fixes (lost write on evicting victim, fsync, claim leak, counter, serve_status) - #221
Merged
Conversation
…m, dir fsync errors, claim release, unsaveable mark clear, serve_status config_conflict
…te, reads never block); narrow crash-safety doc to dir-fsync filesystems
…et_session, save, CLI load); doc wording
…session does not)
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.
Follow-up to #220, covering Elon's post-merge review rounds. Do not merge without owner review. No release. Head: 60314cd.
Round 1 (818e9c3): post-merge blockers
SessionStore.lock()re-checks, after taking the lock, that the registry entry is the same one and isn't evicting. If not, it refuses with the existing session-miss code (session_expired|snap_available, orsession_not_found) and writes nothing._SessionLock, so the refusal shows as@ERR, notinternal.snapshot_unsaveable. EINVAL, ENOTSUP and EOPNOTSUPP are tolerated for filesystems that can't fsync a directory.sessions_unsaveable_heldno longer overcounts.serve_statusreports"config_error": "config_conflict", with no paths.import_sliceis a write that already touches the session. Elon accepted this.Round 2 (eecdd17): expire race
get_sessionand the save path, plus CLIsession saveandsession load.tests/test_expire_race.py):Round 3 (60314cd): renewed-TTL fall-through
get_session, the save path and CLIsession_loadfall through to the live path and return or save the live session. Busy and unsaveable behave as before.docs/operations/one-session-per-document.md.Tests: 720 passed, 1 skipped (the AgensGraph live test, which needs
MEMNET_AGENSGRAPH_URL), 0 failed, 0 xpassed. ruff is clean. Built by Claude haiku; Claude sonnet reviewed each round, and the round-3 review was CORRECT.LATER:
_is_owned()call into gap 7.session_evictedrefusal.The CLI
session_loadpath still refuses a GONE session withoverduerather than trying the snapshot, as it did before this PR.