[GH-ISSUE #8564] [Bug] WABT artifact verifier releases both roots after MCP cleanup fails #6653

Open
opened 2026-11-01 21:12:58 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @morluto on GitHub (Nov 1, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8564

Area

WABT artifact real-provider verifier cleanup

Observed behavior

At revision 245a581818ab13694fa438a06e39898ce03ab206, the WABT artifact verifier attempts MCP client and transport cleanup, then closes its private input root and removes the provider child temporary directory even if either MCP close failed. Cleanup sequence. The two directories hold different resources, but their release can both depend on completion of the MCP/provider process.

Reproduction and evidence

On macOS arm64, Node 24.22.1, a subprocess ran the actual verifier with artificial WABT-version probes and MCP owners. The fake client recorded a handshake attempt and rejected, both client and transport close calls rejected, and the verifier still invoked root close and child-directory removal. The fake client did not start a process. All three injected errors were reported. Fake filesystem owners recorded invocation only; actual deletion and process survival were not tested.

The stdio SDK close completion limitation is separately described in #8555. No real WABT, MCP server or provider was run. Real-world frequency and impact are NOT_ENOUGH_INFO. Closed #2950 concerns the Windows private lease arrangement; closed #4798 concerns production WABT cleanup, rather than this verifier's cleanup ordering.

Expected behavior

Retain the input and provider temporary roots until acquired processes and transports actually complete; preserve primary and cleanup errors and support retry. Exercise partial handshake, mixed failures and late child exit using the existing process-ownership primitives.

Originally created by @morluto on GitHub (Nov 1, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/8564 ### Area WABT artifact real-provider verifier cleanup ### Observed behavior At revision `245a581818ab13694fa438a06e39898ce03ab206`, the WABT artifact verifier attempts MCP client and transport cleanup, then closes its private input root and removes the provider child temporary directory even if either MCP close failed. [Cleanup sequence](https://github.com/morluto/rea/blob/245a581818ab13694fa438a06e39898ce03ab206/scripts/verify-wasm-artifact.mjs#L623-L656). The two directories hold different resources, but their release can both depend on completion of the MCP/provider process. ### Reproduction and evidence On macOS arm64, Node 24.22.1, a subprocess ran the actual verifier with artificial WABT-version probes and MCP owners. The fake client recorded a handshake attempt and rejected, both client and transport close calls rejected, and the verifier still invoked root close and child-directory removal. The fake client did not start a process. All three injected errors were reported. Fake filesystem owners recorded invocation only; actual deletion and process survival were not tested. The stdio SDK close completion limitation is separately described in #8555. No real WABT, MCP server or provider was run. Real-world frequency and impact are NOT_ENOUGH_INFO. Closed #2950 concerns the Windows private lease arrangement; closed #4798 concerns production WABT cleanup, rather than this verifier's cleanup ordering. ### Expected behavior Retain the input and provider temporary roots until acquired processes and transports actually complete; preserve primary and cleanup errors and support retry. Exercise partial handshake, mixed failures and late child exit using the existing process-ownership primitives.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#6653
No description provided.