You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
🤖 formal/plan-storage: model and repro gaps from the #5458 review #5462
Follow-ups from the Codex review of #5458 (the plan-storage TLA+ model and repros). Each one refines the model or a repro. None changes the findings #5458 reports.
Fork crash between registration and copy (MC_fork_race_fixed). With Crashes = TRUE and forkCopyAfterRegister, a fork can register and then crash before its copy. The fork's row is live without its plan. No invariant checks plan availability, so the fixed twin holds. Track plan presence per live row (or keep registration pending until the copy ends) before certifying the 🤖 fix: the fork plan copy runs before registration, so concurrent forks with one name keep the last copy #5175 fix ordering. Review threads: PRRT_kwDOPxxmWM6oWV5D, PRRT_kwDOPxxmWM6oWV5J.
Removal guard and delete are one atomic step (MC_seeded_remove, ClearGuard).deletePlanFilesOfRemovedWorkspace awaits getAllWorkspaceMetadata() and then deletePlanFilesOfMetadata() separately. A create of the same name can register between the two awaits. Split guard and delete into separate sub-steps and add a concurrent-create scenario, for removal and for a candidate clear guard. Review thread: PRRT_kwDOPxxmWM6oWV5R.
Follow-ups from the Codex review of #5458 (the plan-storage TLA+ model and repros). Each one refines the model or a repro. None changes the findings #5458 reports.
Crashes = TRUEandforkCopyAfterRegister, a fork can register and then crash before its copy. The fork's row is live without its plan. No invariant checks plan availability, so the fixed twin holds. Track plan presence per live row (or keep registration pending until the copy ends) before certifying the 🤖 fix: the fork plan copy runs before registration, so concurrent forks with one name keep the last copy #5175 fix ordering. Review threads: PRRT_kwDOPxxmWM6oWV5D, PRRT_kwDOPxxmWM6oWV5J.deletePlanFilesOfRemovedWorkspaceawaitsgetAllWorkspaceMetadata()and thendeletePlanFilesOfMetadata()separately. A create of the same name can register between the two awaits. Split guard and delete into separate sub-steps and add a concurrent-create scenario, for removal and for a candidate clear guard. Review thread: PRRT_kwDOPxxmWM6oWV5R.srcBaseDirfor a separate checkout. The 🤖 fix: two Xum installations on one SSH host can share or delete each other's plan files #5174 fix PR owns this change. Review thread: PRRT_kwDOPxxmWM6oWV5V.Refs #5458, #5175, #5174
Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:high