Skip to content

PHPUnit recipes hang after PHP WASM mysqli_poll runtime crash #2010

Description

@chubes4

Problem

PHPUnit recipes using WP Codebox 0.13.2 from main SHA b790df0c2c56b00ad80fa0342791fd278e82755c reproducibly crash inside PHP 8.3 WASM, then remain active until the 1,500,000 ms recipe timeout. No structured PHPUnit result is produced.

Evidence

Blocked consumer PR: Extra-Chill/data-machine#2991
Workflow run: https://github.com/Extra-Chill/data-machine/actions/runs/30094573746

The initial run and one failed-job retry both terminated after approximately 26m52s with the same signature:

Unhandled rejection: RuntimeError: null function or function signature mismatch
    at php.wasm._php_stream_write_filtered
    at php.wasm._php_stream_flush
    at php.wasm._php_stream_cast
    at php.wasm.mysqlnd_stream_array_from_fd_set
    at php.wasm.zif_mysqli_poll
Error [RuntimeError]: unreachable
    at php.wasm.wasm_sapi_handle_request

The recipe then reports:

Recipe run timed out after 1500001ms while waiting for workflow.steps[0]:wordpress.phpunit

Retry reports the equivalent 1500002ms timeout. Distinct runtime IDs (runtime-mryxxcrz-cois0r, runtime-mryywzlk-1ypvor) rule out one stranded runtime. Both use Node 24, PHP WASM 8.3, WP Codebox 0.13.2, and source SHA b790df0c2c56b00ad80fa0342791fd278e82755c.

Artifacts:

Expected behavior

A PHP WASM runtime rejection should terminalize the PHPUnit workload immediately with structured infrastructure-failure evidence. The runtime should not remain active until the full recipe timeout. The underlying mysqli_poll crash should be fixed or avoided so the Data Machine PHPUnit suite can complete.

Reproduction

From the Data Machine PR branch at 5ad0a03ecbf2f389af7aee0caf3e3e4586ef942f:

homeboy review test data-machine --changed-since 9fff571ab1a4e3a19624956c651f40193891a295

The AGENTS.md candidate changes do not touch PHPUnit runtime or database behavior. Focused tests and the independent audit, lint, refactor, plan, and prefix-policy gates pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions