[GH-ISSUE #4959] [Bug] WASM CLI finalization test loses its module mock in shared workers #3070

Closed
opened 2026-10-31 00:35:55 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @morluto on GitHub (Oct 18, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/4959

Before submitting

  • Searched open and closed issues for the test name and module-mock failures.
  • Evidence below contains public source/Actions references and no credentials or private target data.

Area

Other — CI/test isolation (CLI cancellation).

Observed behavior

Release 6.6.0 full qualification at 2c4338db1fdb7773e05376301c558cff2a0b4b80 fails three commandFinalizationCancellation.test.ts scenarios: interrupt, primary-failure and interrupt-cleanup-failure. The injected host never observes its signal listener; one case returns successful Evidence and two miss exit code 130.

Reproduction

Locally on that source, preload src/cli.ts through a temporary Vitest setupFiles entry, then run the exact test in cli-boundary. Observed 3 failed / 2 passed. Running the five cases alone without preloading passes. This is a controlled module-order reproduction, not a real WASM engine failure.

Expected behavior

All five registration/final-close cases must retain their assertions independent of unrelated test-file ordering. docs/testing.md assigns CLI module mocks to the isolated process-global project.

Impact and scope

Blocks the full release qualification gate. Source-derived cause: this file mocks commandCancellation while its cli-boundary project shares the module graph (isolate: false); a previously loaded CLI consumer retains the original binding. No product cancellation defect is established by this fixture failure.

REA version

6.6.0, source 2c4338db1fdb7773e05376301c558cff2a0b4b80.

Runtime and platform

Node 24.18.0 / Vitest 5.0.3. Observed on hosted Linux x64 and controlled macOS arm64.

Target and artifact context

Source-owned WABT transport seam; no target execution or real WABT qualification.

Interface

Other — Vitest CLI boundary.

Earliest failure stage

Module initialization/test isolation, before the intended cancellation producer is invoked.

Relevant output or evidence

Failed release qualification. Local preload control: 3 failed / 2 passed; after moving the unchanged scenarios to tests/process-global, the focused packet passes (27 cases across six files).

Proposed correction

Move this mock-dependent registration test to the already isolated project, preserving all five cases and assertions. Validate it alongside a preloaded shared CLI graph and retain test discovery coverage.

Originally created by @morluto on GitHub (Oct 18, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/4959 ### Before submitting - [x] Searched open and closed issues for the test name and module-mock failures. - [x] Evidence below contains public source/Actions references and no credentials or private target data. ### Area Other — CI/test isolation (CLI cancellation). ### Observed behavior Release 6.6.0 full qualification at `2c4338db1fdb7773e05376301c558cff2a0b4b80` fails three `commandFinalizationCancellation.test.ts` scenarios: interrupt, primary-failure and interrupt-cleanup-failure. The injected host never observes its signal listener; one case returns successful Evidence and two miss exit code 130. ### Reproduction Locally on that source, preload `src/cli.ts` through a temporary Vitest `setupFiles` entry, then run the exact test in `cli-boundary`. Observed 3 failed / 2 passed. Running the five cases alone without preloading passes. This is a controlled module-order reproduction, not a real WASM engine failure. ### Expected behavior All five registration/final-close cases must retain their assertions independent of unrelated test-file ordering. `docs/testing.md` assigns CLI module mocks to the isolated `process-global` project. ### Impact and scope Blocks the full release qualification gate. Source-derived cause: this file mocks `commandCancellation` while its `cli-boundary` project shares the module graph (`isolate: false`); a previously loaded CLI consumer retains the original binding. No product cancellation defect is established by this fixture failure. ### REA version 6.6.0, source `2c4338db1fdb7773e05376301c558cff2a0b4b80`. ### Runtime and platform Node 24.18.0 / Vitest 5.0.3. Observed on hosted Linux x64 and controlled macOS arm64. ### Target and artifact context Source-owned WABT transport seam; no target execution or real WABT qualification. ### Interface Other — Vitest CLI boundary. ### Earliest failure stage Module initialization/test isolation, before the intended cancellation producer is invoked. ### Relevant output or evidence [Failed release qualification](https://github.com/morluto/rea/actions/runs/39094414403/job/117578040226). Local preload control: 3 failed / 2 passed; after moving the unchanged scenarios to `tests/process-global`, the focused packet passes (27 cases across six files). ### Proposed correction Move this mock-dependent registration test to the already isolated project, preserving all five cases and assertions. Validate it alongside a preloaded shared CLI graph and retain test discovery coverage.
bsakaguchi 2026-10-31 00:35:55 +00:00
  • closed this issue
  • added the
    triage
    bug
    labels
Author
Owner

@morluto commented on GitHub (Oct 18, 2026):

Verified at bb212ffecb47e129cc569b9867b2b6e7c9b65685: full qualification completed successfully (38 passed jobs, one intentional skip), including all six coverage shards, aggregate coverage, Windows/macOS/Linux package checks and CI required. Push CI also passed.

Fixed in 8cbaf6c70: the module-mocking test now belongs to the isolated process-global project. All five scenarios and their lifecycle assertions remain. The preloaded shared-worker control failed three cases before the fix; the isolated cases and full CI pass afterward.

<!-- gh-comment-id:6246051193 --> @morluto commented on GitHub (Oct 18, 2026): Verified at `bb212ffecb47e129cc569b9867b2b6e7c9b65685`: [full qualification](https://github.com/morluto/rea/actions/runs/39099153126) completed successfully (38 passed jobs, one intentional skip), including all six coverage shards, aggregate coverage, Windows/macOS/Linux package checks and `CI required`. [Push CI](https://github.com/morluto/rea/actions/runs/39099134853) also passed. Fixed in `8cbaf6c70`: the module-mocking test now belongs to the isolated process-global project. All five scenarios and their lifecycle assertions remain. The preloaded shared-worker control failed three cases before the fix; the isolated cases and full CI pass afterward.
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#3070
No description provided.