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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PHPUnit recipes hang after PHP WASM mysqli_poll runtime crash

1 participant