Repository navigation
test(daemon): isolate failed-mount cleanup from graph readiness - #4827
ScriptedAlchemy wants to merge 1 commit into
Conversation
Preserve the failed-mount fixture repair from 4984a54 byte-for-byte in its own reviewable change above the shared scheduler repair #4821. The rollback journey uses the existing session-retrieval opener, checks the authoritative session path, and verifies both reopened projects bind their own session stores. No deadline or assertion is removed, and the malformed graph must still refuse admission. This separates CI fixture work from the retention-specific #4798 review without reverting fixes, rewriting history, or editing #4813. It is not evidence that the affected-host retention CPU incident is resolved. Refs #4787.
|
Join the reviewed #4821 and #4827 prerequisite ancestry without changing the existing #4798 tree. Both prerequisite file blobs already match this head exactly. Preserve all retention source, behavioral tests, and concurrent history while allowing a focused six-file retention review above the prerequisites. Do not merge into the prerequisite branch. Land prerequisites in master, retarget, revalidate, and retain the issue acceptance hold. No changes from #4813, held #4776, or decision-model work are moved. Refs #4787
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Second-pass source review of the exact one-file extraction: ee44f8c changes the failed-second-mount test to the existing session-retrieval composition opener, retains the real corrupt-graph refusal and four closed-store/WAL checks, and strengthens recovery by checking both canonical per-project session paths. It does not increase the graph-readiness deadline or suppress the corruption error. Blob 51efc83f65cffb7e27cb3a13eb5297684850f79d is byte-identical to the previously published #4798 repair, so no new test behavior is claimed by this extraction.
This is a reviewable CI fixture prerequisite, not an implementation of #4787 or a fix for graph publication. #4821's scheduler branch remains unchanged. #4798 now has this commit as an additional ancestor and contains only six retention-specific changed files relative to this branch; its full existing source tree/history is preserved.
Require actual nonzero execution of a_failed_later_mount_releases_the_whole_composition_before_returning through Bazel and the applicable full gates. No local Bazel pass or fresh exact-head pass is claimed. Keep the corruption refusal, both identity checks and cleanup assertions intact. Do not merge into #4821's branch: after #4821 lands in master, retarget here to master, validate and review, then retarget the retention child after this prerequisite lands. No approval/merge or production-incident closure is implied.
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Reviewed the complete one-file diff at ee44f8c. The fixture continues to require the malformed graph to refuse the second mount, verifies all four stores/closed WALs, and now checks canonical session-store identity after both projects recover. The switch to open_for_session_retrieval isolates shutdown/rollback from unrelated graph-readiness work; no timeout, failure assertion, or production admission is weakened.
#4821 is now landed in master as 83694e0. Its tree f51e25607efa88492ad5bedac2f5e95ff01a4ae9 is identical to this PR's original parent adc55f8, so I retargeted this PR from the landed prerequisite branch to master without changing its head. GitHub still reports exactly this one-file delta.
Exact-head run 42540332272 is queued; no new Bazel pass or merge is claimed. Leave #4798 stacked until this prerequisite actually lands in master. No decision-model or release changes are involved.
Scope
Refs #4787 — CI fixture prerequisite only; not a retention CPU fix or issue closure.
This one-file PR preserves the already-published daemon failed-mount regression repair from #4798 commit
4984a54fc4cf6cd71d2191d60a80639b1f0b183f, byte-for-byte, so it can be reviewed independently of retention GC. It is stacked on the existing scheduler-fixture PR #4821 (adc55f8eca4ca4e03d2a475c2e72ed0dc854f736); that PR and its branch are not modified. Do not merge this into the prerequisite branch. Land #4821 in master first, then retarget this PR to master and revalidate.Fixture correction
The failed-second-mount cleanup journey does not need a fully published code graph. Use the existing production-composition
open_for_session_retrievalopener, while still requiring the deliberately corrupt graph database to refuse the second mount. Check the canonicalsessions_db_pathfrom the shared layout instead of constructing another path. After removing only the disposable corrupt fixture, reopen both projects and assert each server binds its own canonical session store.The actual malformed-database refusal, all four store-existence/closed-WAL checks, both-project recovery, and shutdown remain. No timeout, production admission, test count, or CI policy is relaxed. The test is not evidence that code-index readiness itself has been repaired.
Provenance and verification
ee44f8c16b736c36075eaadfe4bee6551194951ahas parent test(automation): bind scheduler fixtures to backend identities #4821's exact head and changes onlycrates/tracedecay/src/daemon/production_harness/drop_shutdown_journey_test.rs(blob51efc83f65cffb7e27cb3a13eb5297684850f79d).bazel test //crates/tracedecay:unit_test --test_arg=a_failed_later_mount_releases_the_whole_composition_before_returning --test_output=errors, followed by relevant full CI. Confirm the named test actually runs; zero-match success is not evidence.The retained dependency order is #4821 → this fixture PR → #4798. #4798 will retain its full existing tree and history while showing only retention-specific changes against this prerequisite. #4813 remains independently owned. No master merge, production/infra/tag/credential/release action, or schedule change is authorized by this publication.