Skip to content

Recover EP purge after partial process crash - #322

Merged
pcvantol merged 6 commits into
mainfrom
codex/rev26-ep-crash-recovery
Sep 29, 2026
Merged

pcvantol merged 6 commits into
mainfrom
codex/rev26-ep-crash-recovery

Conversation

@pcvantol

Copy link
Copy Markdown
Owner

Scope

Fix the EP Server system-instance PURGE recovery gap reproduced under revision 26 of pcvantol/forge#142 against the exact published 2.3.104 wheel. A SIGKILL during recursive deletion can remove instance.json after the legacy REMOVE receipt but before the lifecycle tombstone, causing same-operation retry to fail.

This change records the original root device/inode and minimal topology at PURGE_READY, then resumes only the exact terminal REMOVE operation against that same root. It rejects a replacement root or changed surviving descriptor, rechecks remaining entries, and publishes the existing tombstone/receipt after deletion. No public lifecycle contract, service account, provider credential, Forge Platform or Workspace code changes.

Evidence

  • Public 2.3.104 wheel sha256:3f7822fd081598f81d5c666200787a3b2182d7004c078cc36ec20455269909cb: exact child SIGKILL during observed partial deletion, same-operation retry GAP_PROVEN.
  • Local candidate wheel sha256:bccae2368fdce51508b7d18d79dad49961cac0325df915922e693b1c6c8afebc: same harness reached PURGED, terminal replay identical, sibling byte-identical, no surviving child. This is candidate evidence, not released-artifact qualification.
  • 28 targeted EP lifecycle/provisioner tests pass, including partial-delete recovery and replacement-root rejection.
  • Focused branch coverage: system_instance_lifecycle.py 85%; system_instance_provisioner.py 81%. Both exceed the required 80.2% executable-line threshold. Hosted gates remain required.
  • Full local suite: 2,088 tests, with 4 failures, 6 errors and 2 skips in release-shell/server-start groups; representative failures reproduce on untouched main in this host environment. No full-suite PASS is claimed.

Open gates

Independent Quality/Security review, protected checks and exact-head merge remain required. Any product release must follow the normal version/release workflow, then this SIGKILL harness and all affected lifecycle/security regressions must run on actually published bytes. The broader revision-26 crash matrix and terminal #142 handoff remain open under the same assignment.

Canonical register: pcvantol/forge#142 (comment)

@pcvantol
pcvantol merged commit 2bf2cfb into main Sep 29, 2026
18 checks passed
@pcvantol
pcvantol deleted the codex/rev26-ep-crash-recovery branch September 29, 2026 08:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant