Skip to content

fix(cli-agent-bridge): recover verified children of zombie parents - #9

Merged
Hylouis233 merged 1 commit into
audit/bridge-upstream-20261002from
fix/bridge-zombie-reparent-20261002
Oct 15, 2026
Merged

Hylouis233 merged 1 commit into
audit/bridge-upstream-20261002from
fix/bridge-zombie-reparent-20261002

Conversation

@Hylouis233

@Hylouis233 Hylouis233 commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

Scope

Own-fork maintenance review against upstream main 6481e4ae1e0375a4ddb3d5e9b29845354ab1cead. The base branch is an unchanged snapshot of that commit. This isolates the useful remainder of fix/bridge-stability-20260911 after upstream MiniMax-AI#43 and MiniMax-AI#50; it does not reopen the old test-timing changes or port larger Windows smoke budgets.

Remaining bug

On Linux, an exited parent can remain in /proc as a zombie with its original start identity after the child has already been reparented. The current early-child-binding logic cannot establish the old PPID relationship in this case. Later queue processing permanently marks the child uncertain and omits it from the snapshot even when its run marker independently proves ownership.

Recover that child only after two consecutive stable run-marker scans and a final same-generation PID identity check. Preserve early child binding, immutable recorded identities, sticky prior uncertainty, and rejection of wrong/absent markers. This improves the retained POSIX diagnostic tracker; it does not enable POSIX production delegation or change the Windows Job Object support boundary.

Validation

  • The six new event-driven regressions fail three cases on unmodified upstream, including the zombie-parent reproduction
  • Current candidate process-tree tests: 53 passed, 0 failed
  • Current candidate process-tree plus workspace-lock tests: 80 passed, 0 failed
  • Repository validator: 28 hosted Plugins and all examples passed
  • git diff --check passed
  • Fresh Ubuntu CI: 351 tests passed, 0 failed, 0 skipped on Node 22.23.3
  • Complete native Windows bridge suite: 228 total, 212 passed, 0 failed, 16 existing platform skips on Node 22.23.3
  • CodeQL passed
  • Validated head: e8974b8cf7598661556873cd69122cce599e42ed; the CI merge commit and head have the identical tree 6dc99bec177a4e114d6cf80388348aa530064568

Only process-tree.mjs and tests/process-tree.test.mjs are changed. No workflow edits, deadline-budget changes, new dependencies, releases, or deployment.

A parent can retain its original /proc identity as a zombie after its child
has been reparented. Recover this remaining diagnostic-tracker race only
after stable run-marker evidence and a final immutable PID identity check.

Keep upstream's early child binding, sticky uncertainty, and Windows-only
production support boundary. Add six event-driven regressions covering
recovery, wrong or absent markers, PID reuse, child exit, and uncertainty.
Do not change integration budgets or workflow configuration.
@Hylouis233
Hylouis233 marked this pull request as ready for review October 15, 2026 17:28
Copilot AI balanced review requested due to automatic review settings October 15, 2026 17:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Hylouis233

Copy link
Copy Markdown
Owner Author

Independent follow-up verification — 2026-10-15

Rechecked unchanged head e8974b8cf7598661556873cd69122cce599e42ed against upstream snapshot 6481e4ae1e0375a4ddb3d5e9b29845354ab1cead. The change remains limited to the process tracker and its six new regression fixtures.

  • Fresh local process-tree/workspace-lock run on macOS, Node 24.20.0: 80 tests, 79 passed, 0 failed, one existing platform-conditional skip. All six new fixtures pass.
  • Negative control using the unmodified upstream tracker with those six fixtures: three expected failures and three passes, including failure of the zombie-parent recovery reproduction.
  • Repository validation: 28 hosted Plugins and all examples passed. git diff --check passed; the tested checkout remains clean.
  • Existing Ubuntu, native Windows, and both CodeQL checks still report success for this exact head. These were inspected, not freshly rerun today.

The recovery still requires stable exact run-marker evidence plus a final same-generation identity check. It does not replace a recorded identity, clear prior uncertainty, or expand the Windows-only production containment support boundary. No live provider invocation was used.

Marked ready for review. The target intentionally remains audit/bridge-upstream-20261002: landing this PR updates that audit branch only. Fork main (45f49d6) and upstream main remain unchanged; retargeting to the old fork main would introduce a substantially broader synchronization. No new source commit, upstream submission, release, or deployment was performed in this follow-up.

@Hylouis233
Hylouis233 merged commit 3e4780d into audit/bridge-upstream-20261002 Oct 15, 2026
4 checks passed
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.

2 participants