Skip to content

Fix PHPUnit WASM runtime rejection handling - #2011

Merged
chubes4 merged 1 commit into
mainfrom
fix/2010-phpunit-wasm-crash
Jul 24, 2026
Merged

Fix PHPUnit WASM runtime rejection handling#2011
chubes4 merged 1 commit into
mainfrom
fix/2010-phpunit-wasm-crash

Conversation

@chubes4

@chubes4 chubes4 commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • terminalize active wordpress.phpunit commands when PHP WASM emits an unhandled runtime rejection
  • preserve a structured, redacted infrastructure failure instead of waiting for the 25-minute recipe timeout
  • abort the underlying execution after selecting the structured failure, preventing a generic abort from winning the race
  • add recipe-level regression coverage for immediate terminalization, serialization, redaction, and abort ordering

Fixes #2010.

Unblocks Extra-Chill/data-machine#2991.

Evidence

The consumer failed twice with the same PHP 8.3 WASM mysqli_poll rejection and 1,500,000 ms recipe timeout:

Verification

Passed:

  • npm run build
  • npm run test:phpunit-runtime-rejection
  • npm run test:playground-phpunit-readonly-cache-integration
  • npm run test:php-wasm-extension-manifests

Pre-existing failures observed outside the changed path:

  • npm run test:phpunit-runtime-failure-diagnostics expects a bootstrap wrapper source shape that current origin/main no longer emits for bootstrap=runtime-only; this test and relevant source are unchanged by this PR.
  • npm run test:playground-phpunit-bootstrap-failure-integration fails before its intended assertion because its fixture directory is not mounted: cwd is not a readable sandbox directory: /wordpress/wp-content/plugins/bootstrap-failure-fixture.

AI assistance

OpenCode using openai/gpt-5.6-sol investigated the linked CI evidence, drafted the runtime rejection handler and regression test, identified and corrected the abort-order race, and ran the verification commands. Chris Huber reviewed and remains responsible for the submitted changes.

@chubes4
chubes4 merged commit 6552a47 into main Jul 24, 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

1 participant