GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — test_runner: convert to uint during deserialization by avivkeller · Pull Request #64706 · nodejs/node

Conversation

@avivkeller

@avivkeller avivkeller commented Jul 24, 2026

Copy link
Copy Markdown
Member

Fixes #64061 by adding >>> 0 (to convert to a uint) in our test runner's processRawBuffer, similarly to how we do in child_process.

cc @nodejs/test_runner @MoLow

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@avivkeller
test_runner: convert to uint during deserialization
6372776
Signed-off-by: Aviv Keller <[email protected]>
@avivkeller avivkeller added the test_runner Issues and PRs related to the test runner subsystem. label Jul 24, 2026
@nodejs-github-bot

nodejs-github-bot commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/test_runner
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot nodejs-github-bot added the needs-ci PRs that need a full CI run. label Jul 24, 2026
@avivkeller
avivkeller requested a review from JakobJingleheimer July 24, 2026 05:05
@codecov

codecov Bot commented Jul 24, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.12%. Comparing base (e383a1d) to head (6372776).
⚠️ Report is 31 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #64706      +/-   ##
==========================================
- Coverage   90.14%   90.12%   -0.02%     
==========================================
  Files         741      741              
  Lines      242241   242241              
  Branches    45617    45627      +10     
==========================================
- Hits       218366   218318      -48     
- Misses      15361    15394      +33     
- Partials     8514     8529      +15     
Files with missing lines Coverage Δ
lib/internal/test_runner/runner.js 94.42% <100.00%> (ø)

... and 31 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

MoLow
MoLow approved these changes Jul 24, 2026
View reviewed changes
@MoLow MoLow added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Jul 24, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Jul 24, 2026
@nodejs-github-bot

nodejs-github-bot commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/75088/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/75093/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@avivkeller avivkeller added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Jul 24, 2026
atlowChemi
atlowChemi approved these changes Jul 26, 2026
View reviewed changes
@atlowChemi atlowChemi added the commit-queue PRs queued for automated landing through the Commit Queue. label Jul 26, 2026
@nodejs-github-bot nodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Jul 26, 2026
@nodejs-github-bot
nodejs-github-bot merged commit 1ba3ce4 into nodejs:main Jul 26, 2026
83 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Landed in 1ba3ce4

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

NicolaiDolmer added a commit to NicolaiDolmer/CyclingZone that referenced this pull request Aug 3, 2026
@NicolaiDolmer @claude
fix(ci): economyEngine.test.js worker-IPC-flake — deterministisk isol…
70ef2e1
…ation (#3172) (#3222)

* fix(ci): isolate economyEngine.test.js to stop worker-IPC flake

backend/lib/economyEngine.test.js is by far the largest backend test
file (100+ tests, 6500+ lines, ~250KB) and its per-worker result
payload appears large enough to trip a known Node test-runner bug
(nodejs/node#64061, root-caused and fixed upstream in
nodejs/node#64706, merged 2026-07-26 but not yet in our pinned Node
24.x line) when many other test-file workers stream results back to
the parent process concurrently. Isolated runs were always
102/102 (now 103/103) green; the flake only ever showed up in the
full suite (#3169-CI, #3171-CI).

Add backend/scripts/run-tests.js: runs economyEngine.test.js alone
first, then every other backend test file exactly as before (same
flags, same default concurrency) via explicit relative file paths so
the two passes never overlap. Wire both npm test (backend/package.json
- the one permitted package.json edit) and scripts/verify-local.ps1
(which called `node --test` directly, bypassing npm entirely) through
this script so CI and local pre-push runs get the same protection.

No dependency or lockfile changes. Verified with 5 consecutive
`npm test` runs locally (103/103 + 4773/4773 every time, exit 0).

Refs #3172
Co-Authored-By: Claude <[email protected]>

* docs(learnings): postmortem for economyEngine.test.js worker-IPC flake

Refs #3172
Co-Authored-By: Claude <[email protected]>

---------

Co-authored-by: Nicolai Dolmer <[email protected]>
Co-authored-by: Claude <[email protected]>
aduh95 pushed a commit that referenced this pull request Aug 3, 2026
@avivkeller @aduh95
test_runner: convert to uint during deserialization
bb2b2b5
Signed-off-by: Aviv Keller <[email protected]>
PR-URL: #64706
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
aduh95 pushed a commit that referenced this pull request Aug 4, 2026
@avivkeller @aduh95
test_runner: convert to uint during deserialization
70d1124
Signed-off-by: Aviv Keller <[email protected]>
PR-URL: #64706
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
@github-actions github-actions Bot mentioned this pull request Aug 4, 2026
2026-08-05, Version 26.7.0 (Current) #65027
Merged
aduh95 pushed a commit that referenced this pull request Aug 6, 2026
@avivkeller @aduh95
test_runner: convert to uint during deserialization
9ed7146
Signed-off-by: Aviv Keller <[email protected]>
PR-URL: #64706
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Aug 11, 2026
ECG Bot Tyrone Meijn
build(deps): update node.js to v26.7.0
fdbbc54
This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | tools | minor | `26.5.0` → `26.7.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v26.7.0`](https://github.com/nodejs/node/releases/tag/v26.7.0): 2026-08-05, Version 26.7.0 (Current), @&#8203;aduh95

[Compare Source](nodejs/node@v26.5.0...v26.7.0)

##### Notable Changes

- \[[`58717685a1`](nodejs/node@58717685a1)] - **(SEMVER-MINOR)** **crypto**: support loading private keys through STORE loaders (Filip Skokan) [#&#8203;63949](nodejs/node#63949)
- \[[`44b940ee8c`](nodejs/node@44b940ee8c)] - **crypto**: update root certificates to NSS 3.125 (Node.js GitHub Bot) [#&#8203;64746](nodejs/node#64746)
- \[[`c1e4f7365e`](nodejs/node@c1e4f7365e)] - **(SEMVER-MINOR)** **lib**: add perfetto support (Chengzhong Wu) [#&#8203;64565](nodejs/node#64565)
- \[[`11c2f9c642`](nodejs/node@11c2f9c642)] - **(SEMVER-MINOR)** **module**: implement `Symbol.dispose` in `ModuleHooks` (Remco Haszing) [#&#8203;63928](nodejs/node#63928)
- \[[`a646319f61`](nodejs/node@a646319f61)] - **(SEMVER-MINOR)** **test\_runner**: add support for `--test-coverage-include-all` (avivkeller) [#&#8203;64830](nodejs/node#64830)

##### Commits

- \[[`a2d3f891d3`](nodejs/node@a2d3f891d3)] - **async\_hooks**: use validateBoolean for trackPromises (Soul Lee) [#&#8203;64731](nodejs/node#64731)
- \[[`d7266cdd99`](nodejs/node@d7266cdd99)] - **benchmark**: fix calibrate-n option handling (Luan Muniz) [#&#8203;64146](nodejs/node#64146)
- \[[`2e64293e3f`](nodejs/node@2e64293e3f)] - **buffer**: use Clamp conversion in Blob slice (Donghoon Kang) [#&#8203;64739](nodejs/node#64739)
- \[[`5fda0958bd`](nodejs/node@5fda0958bd)] - **buffer**: validate copyArrayBuffer offsets against buffer length (Ilia Alshanetsky) [#&#8203;63904](nodejs/node#63904)
- \[[`5298db40f9`](nodejs/node@5298db40f9)] - **build**: run perfetto build and test on GHA (Chengzhong Wu) [#&#8203;64721](nodejs/node#64721)
- \[[`e3eac7cef9`](nodejs/node@e3eac7cef9)] - **build**: fix v8\_use\_perfetto source scraping (Chengzhong Wu) [#&#8203;64721](nodejs/node#64721)
- \[[`ab5f076d7f`](nodejs/node@ab5f076d7f)] - **build**: bump rustc requirement to >=1.86 (Renegade334) [#&#8203;64543](nodejs/node#64543)
- \[[`df608e061f`](nodejs/node@df608e061f)] - **(SEMVER-MINOR)** **build**: perfetto-sdk (Chengzhong Wu) [#&#8203;64565](nodejs/node#64565)
- \[[`74928adc46`](nodejs/node@74928adc46)] - **build,tools**: fix shared library cross-compile (Kirill Saied) [#&#8203;63963](nodejs/node#63963)
- \[[`58717685a1`](nodejs/node@58717685a1)] - **(SEMVER-MINOR)** **crypto**: support loading private keys through STORE loaders (Filip Skokan) [#&#8203;63949](nodejs/node#63949)
- \[[`58d13b6f3d`](nodejs/node@58d13b6f3d)] - **crypto**: preserve OpenSSL errors from KDF failures (Filip Skokan) [#&#8203;64776](nodejs/node#64776)
- \[[`478a719cb5`](nodejs/node@478a719cb5)] - **crypto**: fix Argon2 bypassing FIPS mode (Filip Skokan) [#&#8203;64776](nodejs/node#64776)
- \[[`44b940ee8c`](nodejs/node@44b940ee8c)] - **crypto**: update root certificates to NSS 3.125 (Node.js GitHub Bot) [#&#8203;64746](nodejs/node#64746)
- \[[`fde85237c7`](nodejs/node@fde85237c7)] - **crypto**: clarify missing cipher error (Filip Skokan) [#&#8203;64852](nodejs/node#64852)
- \[[`c604d8846d`](nodejs/node@c604d8846d)] - **crypto**: reuse X509 issuer result (Filip Skokan) [#&#8203;64852](nodejs/node#64852)
- \[[`c68c7d0112`](nodejs/node@c68c7d0112)] - **crypto**: validate key generation options (Filip Skokan) [#&#8203;64852](nodejs/node#64852)
- \[[`c36bb1d017`](nodejs/node@c36bb1d017)] - **crypto**: fix Argon2 validation errors (Filip Skokan) [#&#8203;64852](nodejs/node#64852)
- \[[`f61408bb27`](nodejs/node@f61408bb27)] - **crypto**: handle XOF output allocation failure (Filip Skokan) [#&#8203;64851](nodejs/node#64851)
- \[[`2b4053d046`](nodejs/node@2b4053d046)] - **crypto**: initialize KeyObjectData mutex eagerly (Filip Skokan) [#&#8203;64851](nodejs/node#64851)
- \[[`4b7b2adf44`](nodejs/node@4b7b2adf44)] - **crypto**: handle DH operation failures (Filip Skokan) [#&#8203;64851](nodejs/node#64851)
- \[[`12170c3753`](nodejs/node@12170c3753)] - **crypto**: use user-facing error for output encoding changes (Archkon) [#&#8203;64692](nodejs/node#64692)
- \[[`474f06d550`](nodejs/node@474f06d550)] - **debugger**: preserve overlapping CDP request state (Trivikram Kamat) [#&#8203;64467](nodejs/node#64467)
- \[[`718cbe9497`](nodejs/node@718cbe9497)] - **deps**: upgrade npm to 11.19.0 (npm team) [#&#8203;64883](nodejs/node#64883)
- \[[`657c6154b3`](nodejs/node@657c6154b3)] - **deps**: update ngtcp2 to 1.25.0 (Node.js GitHub Bot) [#&#8203;64944](nodejs/node#64944)
- \[[`75a1fbeff9`](nodejs/node@75a1fbeff9)] - **deps**: update nghttp3 to 1.18.0 (Node.js GitHub Bot) [#&#8203;64943](nodejs/node#64943)
- \[[`07d7cb7cd8`](nodejs/node@07d7cb7cd8)] - **deps**: update minimatch to 10.2.6 (Node.js GitHub Bot) [#&#8203;64945](nodejs/node#64945)
- \[[`f7d56359f1`](nodejs/node@f7d56359f1)] - **deps**: update simdjson to 4.6.6 (Node.js GitHub Bot) [#&#8203;64942](nodejs/node#64942)
- \[[`8b06457cfb`](nodejs/node@8b06457cfb)] - **deps**: update acorn to 8.18.0 (Node.js GitHub Bot) [#&#8203;64941](nodejs/node#64941)
- \[[`5919d01525`](nodejs/node@5919d01525)] - **deps**: update googletest to [`1b6f64d`](nodejs/node@1b6f64d) (Node.js GitHub Bot) [#&#8203;64940](nodejs/node#64940)
- \[[`4a87ad6cff`](nodejs/node@4a87ad6cff)] - **deps**: update nghttp2 to 1.70.0 (Node.js GitHub Bot) [#&#8203;64939](nodejs/node#64939)
- \[[`c96d76a7c8`](nodejs/node@c96d76a7c8)] - **deps**: update zlib to 1.3.2.1-motley-42c2f19 (Node.js GitHub Bot) [#&#8203;64744](nodejs/node#64744)
- \[[`2b59984c0f`](nodejs/node@2b59984c0f)] - **deps**: V8: backport [`5177b10`](nodejs/node@5177b10891e6) (avivkeller) [#&#8203;64631](nodejs/node#64631)
- \[[`b839af91da`](nodejs/node@b839af91da)] - **deps**: update ada to 4.0.0 (Node.js GitHub Bot) [#&#8203;64790](nodejs/node#64790)
- \[[`70dedef942`](nodejs/node@70dedef942)] - **deps**: update sqlite to 3.53.4 (Node.js GitHub Bot) [#&#8203;64745](nodejs/node#64745)
- \[[`7bc4c171f5`](nodejs/node@7bc4c171f5)] - **deps**: update Rust crates for V8 14.6.202.34-node.26 (Renegade334) [#&#8203;64543](nodejs/node#64543)
- \[[`308c6b2ac3`](nodejs/node@308c6b2ac3)] - **deps**: V8: backport [`7d9b7e0`](nodejs/node@7d9b7e03141d) (Manish Goregaokar) [#&#8203;64543](nodejs/node#64543)
- \[[`8eeae28e88`](nodejs/node@8eeae28e88)] - **deps**: V8: backport [`c4d06ba`](nodejs/node@c4d06ba586f3) (liujiahui) [#&#8203;63731](nodejs/node#63731)
- \[[`bbd6fc58c4`](nodejs/node@bbd6fc58c4)] - **diagnostics\_channel**: grow native channel storage (Stephen Belanger) [#&#8203;64497](nodejs/node#64497)
- \[[`ce8b292955`](nodejs/node@ce8b292955)] - **doc**: fix grammar and punctuation in dgram documentation (Kamal Rawal) [#&#8203;64957](nodejs/node#64957)
- \[[`1a413a60cf`](nodejs/node@1a413a60cf)] - **doc**: fix grammar and editorial issues in addons documentation (Kamal Rawal) [#&#8203;64952](nodejs/node#64952)
- \[[`63fbd59e64`](nodejs/node@63fbd59e64)] - **doc**: formalize fn/name as part of TestOptions API (Christopher Hiller) [#&#8203;64946](nodejs/node#64946)
- \[[`b263b0bca1`](nodejs/node@b263b0bca1)] - **doc**: remove references to `ca`/`crl` as per-context QuicSession options (René) [#&#8203;64769](nodejs/node#64769)
- \[[`f37de14b27`](nodejs/node@f37de14b27)] - **doc**: fix typo in maintaining-dependencies.md (greenhead) [#&#8203;64896](nodejs/node#64896)
- \[[`16cb77cdc8`](nodejs/node@16cb77cdc8)] - **doc**: add RafaelGSS as last security release stewards (Rafael Gonzaga) [#&#8203;64843](nodejs/node#64843)
- \[[`335c28cd17`](nodejs/node@335c28cd17)] - **doc**: fix typos in documentation (greenhead) [#&#8203;64900](nodejs/node#64900)
- \[[`d4bed8ca39`](nodejs/node@d4bed8ca39)] - **doc**: fix missing references in doc type map (Tim Perry) [#&#8203;64872](nodejs/node#64872)
- \[[`e71d09d5f1`](nodejs/node@e71d09d5f1)] - **doc**: improve TestContext hook descriptions (Kamal Rawal) [#&#8203;64899](nodejs/node#64899)
- \[[`7089bd9ae4`](nodejs/node@7089bd9ae4)] - **doc**: add missing float32/float64 FFI type names (Soul Lee) [#&#8203;64874](nodejs/node#64874)
- \[[`8d3ae0830e`](nodejs/node@8d3ae0830e)] - **doc**: document stream.isDestroyed() (YspritanHyzygy) [#&#8203;64789](nodejs/node#64789)
- \[[`a757e62af7`](nodejs/node@a757e62af7)] - **doc**: add contributing detail for git Signed-off-by trailer (Mike McCready) [#&#8203;64862](nodejs/node#64862)
- \[[`3e840f43ed`](nodejs/node@3e840f43ed)] - **doc**: mark config-file as release candidate (Marco Ippolito) [#&#8203;64516](nodejs/node#64516)
- \[[`70cd5df810`](nodejs/node@70cd5df810)] - **doc**: fix duplicated word in test snapshot docs (Kamal Rawal) [#&#8203;64837](nodejs/node#64837)
- \[[`d5f36c7adc`](nodejs/node@d5f36c7adc)] - **doc**: remove obsolete cctest node.gyp instructions (Soul Lee) [#&#8203;64814](nodejs/node#64814)
- \[[`a0bf29ea09`](nodejs/node@a0bf29ea09)] - **doc**: report proper return type on url.format (Brian Muenzenmeyer) [#&#8203;64806](nodejs/node#64806)
- \[[`e655e42085`](nodejs/node@e655e42085)] - **doc**: use ffi.suffix for library paths in examples (Junsoo Ha) [#&#8203;64805](nodejs/node#64805)
- \[[`e0f0830dbc`](nodejs/node@e0f0830dbc)] - **doc**: document --permission-audit audit mode behavior (Adrián Estrada) [#&#8203;64791](nodejs/node#64791)
- \[[`efbede6de0`](nodejs/node@efbede6de0)] - **doc**: clarify tlsSocket.authorized on resumption (soreavis) [#&#8203;64584](nodejs/node#64584)
- \[[`db95655c4a`](nodejs/node@db95655c4a)] - **doc**: stabilize --disable-warning (Jean Michelet) [#&#8203;64742](nodejs/node#64742)
- \[[`a8367200be`](nodejs/node@a8367200be)] - **doc**: add MDN links for explicit resource management in fs (lluisemper) [#&#8203;59557](nodejs/node#59557)
- \[[`1c09165c2e`](nodejs/node@1c09165c2e)] - **doc**: mention constructor check in deepStrictEqual (Sumit Kumar Das) [#&#8203;62010](nodejs/node#62010)
- \[[`29709324e0`](nodejs/node@29709324e0)] - **doc**: update technical priorities (Jacob Smith) [#&#8203;64505](nodejs/node#64505)
- \[[`522a28e648`](nodejs/node@522a28e648)] - **doc**: deprecation add more codemod (Augustin Mauroy) [#&#8203;63175](nodejs/node#63175)
- \[[`c40aaa6539`](nodejs/node@c40aaa6539)] - **doc**: run license-builder (Node.js GitHub Bot) [#&#8203;63918](nodejs/node#63918)
- \[[`428e9bc50f`](nodejs/node@428e9bc50f)] - **ffi**: fix crash in refCallback and unrefCallback (Trivikram Kamat) [#&#8203;64881](nodejs/node#64881)
- \[[`33912103e7`](nodejs/node@33912103e7)] - **ffi**: reject fast calls after library close (Trivikram Kamat) [#&#8203;64860](nodejs/node#64860)
- \[[`b348ed7f92`](nodejs/node@b348ed7f92)] - **ffi**: validate fast 32-bit integer argument ranges (Trivikram Kamat) [#&#8203;64691](nodejs/node#64691)
- \[[`48f4cfb480`](nodejs/node@48f4cfb480)] - **ffi**: fix optimized buffer conversions (Trivikram Kamat) [#&#8203;64639](nodejs/node#64639)
- \[[`109ffcd4f3`](nodejs/node@109ffcd4f3)] - **ffi**: preserve link register in ppc64 trampoline (Trivikram Kamat) [#&#8203;64792](nodejs/node#64792)
- \[[`aa3f168b31`](nodejs/node@aa3f168b31)] - **ffi**: preserve strings during reentrant calls (Trivikram Kamat) [#&#8203;64551](nodejs/node#64551)
- \[[`ca60942f38`](nodejs/node@ca60942f38)] - **ffi**: preserve uint8 semantics for bool fast calls (Trivikram Kamat) [#&#8203;64527](nodejs/node#64527)
- \[[`0fb1d2bd65`](nodejs/node@0fb1d2bd65)] - **ffi**: validate fast integer argument ranges (Trivikram Kamat) [#&#8203;64614](nodejs/node#64614)
- \[[`b250b40b30`](nodejs/node@b250b40b30)] - **fs**: key glob matcher cache by platform (Archkon) [#&#8203;64571](nodejs/node#64571)
- \[[`e26891ec6a`](nodejs/node@e26891ec6a)] - **http**: fix writableFinished and 'finish' after write errors (Tim Perry) [#&#8203;64847](nodejs/node#64847)
- \[[`dfc192fdfb`](nodejs/node@dfc192fdfb)] - **http**: avoid aborting IncomingMessage signal on normal close (Archkon) [#&#8203;64392](nodejs/node#64392)
- \[[`6794441c85`](nodejs/node@6794441c85)] - **http**: guard invalid timeout values in checkConnections (Efe Karasakal) [#&#8203;64506](nodejs/node#64506)
- \[[`6879aa4aa8`](nodejs/node@6879aa4aa8)] - **http**: propagate highWaterMark to ClientRequest OutgoingMessage (trivenay) [#&#8203;64653](nodejs/node#64653)
- \[[`72448a82f4`](nodejs/node@72448a82f4)] - **http2**: avoid copying the options in respond() (Matteo Collina) [#&#8203;64265](nodejs/node#64265)
- \[[`f6692da576`](nodejs/node@f6692da576)] - **http2**: avoid per-write closures in kWriteGeneric (Matteo Collina) [#&#8203;64265](nodejs/node#64265)
- \[[`3ed37153f8`](nodejs/node@3ed37153f8)] - **http2**: reduce per-request allocations (Matteo Collina) [#&#8203;64265](nodejs/node#64265)
- \[[`bce92debba`](nodejs/node@bce92debba)] - ***Revert*** "**http2**: avoid per-write closures in kWriteGeneric" (Antoine du Hamel) [#&#8203;64663](nodejs/node#64663)
- \[[`b5d5dd74a1`](nodejs/node@b5d5dd74a1)] - ***Revert*** "**http2**: avoid copying the options in respond()" (Antoine du Hamel) [#&#8203;64663](nodejs/node#64663)
- \[[`19b9c14d60`](nodejs/node@19b9c14d60)] - **lib**: fix AbortSignal.any() observed-composite leak (Paul Bouchon) [#&#8203;64481](nodejs/node#64481)
- \[[`d3cada57c2`](nodejs/node@d3cada57c2)] - **lib**: fix typo in comment in \_http\_client.js (agape1225) [#&#8203;64729](nodejs/node#64729)
- \[[`c1e4f7365e`](nodejs/node@c1e4f7365e)] - **(SEMVER-MINOR)** **lib**: add perfetto support (Chengzhong Wu) [#&#8203;64565](nodejs/node#64565)
- \[[`6c2157522d`](nodejs/node@6c2157522d)] - **loader**: enforce path normalization before lookup (Maël Nison) [#&#8203;63917](nodejs/node#63917)
- \[[`31522c41a7`](nodejs/node@31522c41a7)] - **meta**: bump actions/stale from 10.3.0 to 11.0.0 (dependabot\[bot]) [#&#8203;64935](nodejs/node#64935)
- \[[`88c8b8ef54`](nodejs/node@88c8b8ef54)] - **meta**: bump github/codeql-action/analyze from 4.36.2 to 4.37.3 (dependabot\[bot]) [#&#8203;64934](nodejs/node#64934)
- \[[`9dcd759a84`](nodejs/node@9dcd759a84)] - **meta**: bump github/codeql-action/autobuild from 4.36.2 to 4.37.3 (dependabot\[bot]) [#&#8203;64933](nodejs/node#64933)
- \[[`82ca02db3c`](nodejs/node@82ca02db3c)] - **meta**: bump actions/setup-python from 6.3.0 to 7.0.0 (dependabot\[bot]) [#&#8203;64932](nodejs/node#64932)
- \[[`848e2287f2`](nodejs/node@848e2287f2)] - **meta**: bump github/codeql-action/init from 4.36.2 to 4.37.3 (dependabot\[bot]) [#&#8203;64931](nodejs/node#64931)
- \[[`ae8ad3b17b`](nodejs/node@ae8ad3b17b)] - **meta**: bump Mozilla-Actions/sccache-action from 0.0.10 to 0.0.11 (dependabot\[bot]) [#&#8203;64930](nodejs/node#64930)
- \[[`0b359cfa4c`](nodejs/node@0b359cfa4c)] - **meta**: bump cachix/install-nix-action from 31.10.6 to 31.11.0 (dependabot\[bot]) [#&#8203;64929](nodejs/node#64929)
- \[[`3b4f980f4c`](nodejs/node@3b4f980f4c)] - **meta**: bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.3 (dependabot\[bot]) [#&#8203;64927](nodejs/node#64927)
- \[[`d7ee9e9ea7`](nodejs/node@d7ee9e9ea7)] - **meta**: bump step-security/harden-runner from 2.19.4 to 2.20.0 (dependabot\[bot]) [#&#8203;64926](nodejs/node#64926)
- \[[`7e80bbaaa9`](nodejs/node@7e80bbaaa9)] - **meta**: bump ossf/scorecard-action from 2.4.3 to 2.4.4 (dependabot\[bot]) [#&#8203;64925](nodejs/node#64925)
- \[[`915cabbfcf`](nodejs/node@915cabbfcf)] - **meta**: remove node\_crates .gitignore (René) [#&#8203;64779](nodejs/node#64779)
- \[[`8e03c54347`](nodejs/node@8e03c54347)] - **meta**: add [@&#8203;nodejs/url](https://github.com/nodejs/url) as codeowner for node\_url\_pattern.\* (Efe Karasakal) [#&#8203;64737](nodejs/node#64737)
- \[[`11c2f9c642`](nodejs/node@11c2f9c642)] - **(SEMVER-MINOR)** **module**: implement Symbol.dispose in ModuleHooks (Remco Haszing) [#&#8203;63928](nodejs/node#63928)
- \[[`fffd8a76d0`](nodejs/node@fffd8a76d0)] - **net**: support TCP handle transfer on Windows (Matteo Collina) [#&#8203;64460](nodejs/node#64460)
- \[[`fe9e0dbdc2`](nodejs/node@fe9e0dbdc2)] - **net**: support AF\_UNIX paths in net.BoundSocket (Guy Bedford) [#&#8203;64399](nodejs/node#64399)
- \[[`eb61b7ee1e`](nodejs/node@eb61b7ee1e)] - **permission**: add unique warning codes (David Evans) [#&#8203;64414](nodejs/node#64414)
- \[[`999a928822`](nodejs/node@999a928822)] - **permission**: support v8.setHeapSnapshotNearHeapLimit (Ilyas Shabi) [#&#8203;64808](nodejs/node#64808)
- \[[`7de3d095b6`](nodejs/node@7de3d095b6)] - **quic**: fix stop sending behaviour & callback (Tim Perry) [#&#8203;64710](nodejs/node#64710)
- \[[`6289398bb2`](nodejs/node@6289398bb2)] - **quic**: fix coverage comment typo (Jungwon Sohn) [#&#8203;64486](nodejs/node#64486)
- \[[`01510dc759`](nodejs/node@01510dc759)] - **quic**: fix segfault after fragmented client hello (Tim Perry) [#&#8203;64720](nodejs/node#64720)
- \[[`dcc348af97`](nodejs/node@dcc348af97)] - **quic**: serialize stream reset code as string (한만욱) [#&#8203;64577](nodejs/node#64577)
- \[[`c25b8e3331`](nodejs/node@c25b8e3331)] - **readline**: reduce createInterface overhead (Matteo Collina) [#&#8203;64585](nodejs/node#64585)
- \[[`14e802d1cd`](nodejs/node@14e802d1cd)] - **sqlite**: invalidate sessions when closing database (Trivikram Kamat) [#&#8203;64783](nodejs/node#64783)
- \[[`279547b7da`](nodejs/node@279547b7da)] - **sqlite**: check database state before calling SQLite (Trivikram Kamat) [#&#8203;64812](nodejs/node#64812)
- \[[`bb86521a42`](nodejs/node@bb86521a42)] - **sqlite**: fix crash when a session outlives its database (Mohamed Sayed) [#&#8203;63797](nodejs/node#63797)
- \[[`870f4997e7`](nodejs/node@870f4997e7)] - **sqlite**: fix use-after-free in Exec() and ApplyChangeset() (Matteo Collina) [#&#8203;64535](nodejs/node#64535)
- \[[`a8ec5a9df7`](nodejs/node@a8ec5a9df7)] - **src**: fix perfetto build on GetTraceFilePath (Chengzhong Wu) [#&#8203;64721](nodejs/node#64721)
- \[[`6cd643acaa`](nodejs/node@6cd643acaa)] - **src**: implement MemoryRetainer protocol for ByteSource (Filip Skokan) [#&#8203;64660](nodejs/node#64660)
- \[[`8725e56928`](nodejs/node@8725e56928)] - **src**: fix crash when writing odd-length hex string via Writev (RajeshKumar11) [#&#8203;63658](nodejs/node#63658)
- \[[`e018f9a4a1`](nodejs/node@e018f9a4a1)] - **(SEMVER-MINOR)** **src**: add perfetto trace agent (Chengzhong Wu) [#&#8203;64565](nodejs/node#64565)
- \[[`0611d443ab`](nodejs/node@0611d443ab)] - **(SEMVER-MINOR)** **src**: rename legacy trace event headers (Chengzhong Wu) [#&#8203;64565](nodejs/node#64565)
- \[[`2897cc1d93`](nodejs/node@2897cc1d93)] - **(SEMVER-MINOR)** **src**: fix trace macro compatibility (Chengzhong Wu) [#&#8203;64565](nodejs/node#64565)
- \[[`d4d7172e10`](nodejs/node@d4d7172e10)] - **src**: avoid using ToLocalChecked in crypto\_hash (James M Snell) [#&#8203;64668](nodejs/node#64668)
- \[[`53b7d48b47`](nodejs/node@53b7d48b47)] - **src**: fix libuv assertion on windows (liuxingbaoyu) [#&#8203;61999](nodejs/node#61999)
- \[[`69d10ed021`](nodejs/node@69d10ed021)] - **src,test**: disable trace events tests when perfetto is enabled (Chengzhong Wu) [#&#8203;64721](nodejs/node#64721)
- \[[`1b0597b4ef`](nodejs/node@1b0597b4ef)] - **stream**: cut per-chunk allocations in pipeTo (Matteo Collina) [#&#8203;64890](nodejs/node#64890)
- \[[`2632d606bb`](nodejs/node@2632d606bb)] - **stream**: preserve push signal abort reason (Trivikram Kamat) [#&#8203;64798](nodejs/node#64798)
- \[[`d5358a75bc`](nodejs/node@d5358a75bc)] - **stream**: skip zero-byte broadcast writes (Trivikram Kamat) [#&#8203;64772](nodejs/node#64772)
- \[[`796c896fb4`](nodejs/node@796c896fb4)] - **stream**: honor AbortSignal in Writer.end() (Trivikram Kamat) [#&#8203;64727](nodejs/node#64727)
- \[[`ff12b8e22e`](nodejs/node@ff12b8e22e)] - **stream**: use validateString for consumer encoding (Jungwon Sohn) [#&#8203;64754](nodejs/node#64754)
- \[[`cfad2efb06`](nodejs/node@cfad2efb06)] - **stream**: use the ring buffer for pending BYOB pull-into descriptors (Matteo Collina) [#&#8203;64818](nodejs/node#64818)
- \[[`fe06bf56dc`](nodejs/node@fe06bf56dc)] - **stream**: fix uncatchable error closing half-open Duplex.toWeb() writable (Mohamed Sayed) [#&#8203;64161](nodejs/node#64161)
- \[[`f2919dbb83`](nodejs/node@f2919dbb83)] - **test**: unflake debugger and REPL tests (Matteo Collina) [#&#8203;64718](nodejs/node#64718)
- \[[`a1c29174e8`](nodejs/node@a1c29174e8)] - **test**: ensure assertions are reached on all tests (Antoine du Hamel) [#&#8203;64716](nodejs/node#64716)
- \[[`b9e596f8e5`](nodejs/node@b9e596f8e5)] - **test**: reuse ffi.suffix instead of reimplementing it (Seongeun Lee) [#&#8203;64840](nodejs/node#64840)
- \[[`c816918e14`](nodejs/node@c816918e14)] - **test**: remove test-repl-user-error-handler from flaky (avivkeller) [#&#8203;64631](nodejs/node#64631)
- \[[`9d2f10ec54`](nodejs/node@9d2f10ec54)] - **test**: update WPT for url to [`4832db4`](nodejs/node@4832db4761) (Node.js GitHub Bot) [#&#8203;64829](nodejs/node#64829)
- \[[`75b80d0b7b`](nodejs/node@75b80d0b7b)] - **test**: update WPT for url to [`b63305b`](nodejs/node@b63305b743) (Node.js GitHub Bot) [#&#8203;64790](nodejs/node#64790)
- \[[`9a139b3c86`](nodejs/node@9a139b3c86)] - **test**: cover worker throwing primitive values (varshitha) [#&#8203;64365](nodejs/node#64365)
- \[[`796acc8920`](nodejs/node@796acc8920)] - **test**: mark test-repl-user-error-handler as flaky (Aviv Keller) [#&#8203;64612](nodejs/node#64612)
- \[[`a646319f61`](nodejs/node@a646319f61)] - **(SEMVER-MINOR)** **test\_runner**: add support for --test-coverage-include-all (avivkeller) [#&#8203;64830](nodejs/node#64830)
- \[[`4368303e01`](nodejs/node@4368303e01)] - **test\_runner**: wait for filtered suite build (semimikoh) [#&#8203;64208](nodejs/node#64208)
- \[[`70d11241a3`](nodejs/node@70d11241a3)] - **test\_runner**: convert to uint during deserialization (Aviv Keller) [#&#8203;64706](nodejs/node#64706)
- \[[`cafe7bffcc`](nodejs/node@cafe7bffcc)] - **tls**: fix SNICallback certificate selection (Matteo Collina) [#&#8203;64700](nodejs/node#64700)
- \[[`9ee05ec40f`](nodejs/node@9ee05ec40f)] - **tools**: bump the eslint group in /tools/eslint with 4 updates (dependabot\[bot]) [#&#8203;64928](nodejs/node#64928)
- \[[`5f4b859932`](nodejs/node@5f4b859932)] - **tools**: bump brace-expansion from 5.0.7 to 5.0.9 in /tools/eslint (dependabot\[bot]) [#&#8203;64904](nodejs/node#64904)
- \[[`b5ced907b3`](nodejs/node@b5ced907b3)] - **tools**: use 'readonly' for EventSource global (Honey Tyagi) [#&#8203;64787](nodejs/node#64787)
- \[[`fd4460e34e`](nodejs/node@fd4460e34e)] - **typings**: add heap\_utils internalBinding types (Donghoon Kang) [#&#8203;64816](nodejs/node#64816)
- \[[`3bc0ee0492`](nodejs/node@3bc0ee0492)] - **typings**: remove isDataView from types binding (Archkon) [#&#8203;64738](nodejs/node#64738)
- \[[`236d7ca965`](nodejs/node@236d7ca965)] - **url**: create URLPattern result properties in WebIDL order (Archkon) [#&#8203;64733](nodejs/node#64733)
- \[[`3def577ab4`](nodejs/node@3def577ab4)] - **v8**: report minor mark-sweep in GCProfiler (Archkon) [#&#8203;64688](nodejs/node#64688)
- \[[`5293abff73`](nodejs/node@5293abff73)] - **vfs**: speed up recursive readdir test setup (Trivikram Kamat) [#&#8203;64813](nodejs/node#64813)
- \[[`4345185496`](nodejs/node@4345185496)] - **vfs**: make lchown update symlink metadata (Trivikram Kamat) [#&#8203;64573](nodejs/node#64573)
- \[[`b6ab546de5`](nodejs/node@b6ab546de5)] - **wasm**: register missing SetURL function (Archkon) [#&#8203;64679](nodejs/node#64679)
- \[[`f322870bd1`](nodejs/node@f322870bd1)] - **zlib**: validate pledgedSrcSize as a safe integer (Archkon) [#&#8203;64604](nodejs/node#64604)
- \[[`44042c20d4`](nodejs/node@44042c20d4)] - **zlib**: accept ArrayBuffer dictionary in Zstd (Ryuhei Shima) [#&#8203;64599](nodejs/node#64599)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODguMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6bWlub3IiXX0=-->
@aduh95 aduh95 mentioned this pull request Aug 22, 2026
2026-08-26, Version 24.20.0 'Krypton' (LTS) #65461
Merged
@hsleedevelop hsleedevelop mentioned this pull request Aug 25, 2026
feat!: Node 최소 버전 24로 상향 + CI matrix [24] (EOL 런타임 탈출) bd-makers/team-harness#45
Merged
hsleedevelop pushed a commit to bd-makers/team-harness that referenced this pull request Aug 25, 2026
@chad-aijinet @claude
feat!: 최소 Node 버전을 24로 올리고 CI matrix를 [24]로 이동
51c3cce
BREAKING CHANGE: engines.node 가 ">=18" 에서 ">=24" 로 바뀐다.

두 가지가 겹친 결과다.

1) Node 18(2025-04-30)·20(2026-04-30)이 둘 다 지원 종료라 CI가 EOL 런타임만
   시험하고 있었고, 릴리스 발행 job 도 node 20 에서 돌고 있었다.
2) node:test 러너가 결과 payload 길이를 부호 있는 정수로 읽는 버그
   (nodejs/node#64061)가 CI 를 간헐적으로 빨갛게 만들었다. 수정
   (nodejs/node#64706)은 26.7.0 에 들어간 뒤 v24 라인에만 백포트됐다 —
   v22 는 활성 LTS 인데도 받지 못했다.

그래서 '활성 LTS 두 개(22·24)'가 아니라 24 단독이다. 22 를 넣으면 flake 가
되돌아온다. 이 근거를 test.yml 주석에 남겼다.

변경: package.json engines · test.yml matrix · release.yml 발행 런타임 ·
README(2곳) · docs/prerequisites.md(3곳) · CHANGELOG Unreleased.
종결된 task 의 spec 에 남은 '≥ 18' 서술은 historical record 라 건드리지 않았다.

검증: mise x node@24 -- npm test → 415 tests, 0 fail.

주의 2건을 artifact 에 남겼다. (a) node-version: 24 는 현재 24.19.0 으로
해석되고 백포트는 24.20.0(2026-08-26)부터라, 오늘 green 은 flake 해소의
증거가 아니다. (b) node 24 는 프로세스 시작 비용이 커(17ms→37ms) perf 비율
예산의 실효 민감도가 낮아진다 — CI 실측 후 필요하면 재산정한다.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01S79BMNyq1gqXXcEQw1vsnx
n0mad-ai added a commit to n0mad-ai/bastra-recall that referenced this pull request Aug 28, 2026
@n0mad-ai @claude
fix(daemon-tests): cli-rules kapselt stdout — rohe ✓-Zeilen crashten …
d3dd732
…den Runner-IPC-Decoder (#383)

Unter node --test teilt sich das Kind-stdout die Pipe mit den v8-serialisierten
Result-Frames des Runners; stderr läuft getrennt und war nie das Problem.
cli-rules.test.ts ruft cmdRules in-process auf, und rules-cmd.ts schreibt acht
ungekapselte ✓-Statuszeilen auf stdout. ✓ ist E2 9C 93 — landet ein Byte >= 0x80
an der Längenposition eines Frames, liest Node <= 22.23.2 / 24.19.0 die Länge
SIGNED (nodejs/node#64061), der Warte-auf-mehr-Daten-Guard greift nicht und v8
deserialisiert Müll. Der Upstream-Fix (nodejs/node#64706) kommt erst in 24.20.0
und wird nach 22.x nicht backportet.

cli-rules.test.ts war die einzige der sechs CLI-Testdateien ohne
stdout-Kapselung. Gemessen auf Node 22.18.0, volle Suite: ungekapselt 9/20
Läufe gecrasht, gekapselt 0/20 bei identischer Wallclock. --test-concurrency=1
hätte das Symptom auch unterdrückt — für 5,3-fache Laufzeit.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016hWmKBLLBXBpKRxAMbwZE3
This was referenced Aug 28, 2026
tests: 26 daemon test files import CLI modules without stdout capture — the class behind #383 is still open n0mad-ai/bastra-recall#414
Closed
ci: the Node 22 test run intermittently dies in the runner's own IPC decoder ("Unable to deserialize cloned data") n0mad-ai/bastra-recall#383
Closed
@P4suta

P4suta commented Aug 28, 2026

Copy link
Copy Markdown

Would a combined manual backport of #62704 and this PR to v22.x-staging be welcome?

I realize that v22 is in Maintenance LTS. I think this may meet the important bug-fix bar because #62693 reproduces deterministically on v22.21.0: child stdout ending in FF 0F 7F FF FF FF can leave the parent test runner spinning at 100% CPU indefinitely, with SIGTERM unable to stop it. #64061 also documents a real CI failure in the same deserialization path.

The two changes need to be backported together on v22. #62704 adds EOF/no-progress recovery and preserves partial V8 headers; this PR makes the frame length unsigned. Applying this PR alone would make the high-bit length case wait for an impossible frame and enter the drain hang fixed by #62704.

Both fixes are already released on v26 and v24 (the latter in v24.20.0), and they have had more than two weeks to mature in Current. I can prepare a conflict-resolved two-commit backport limited to lib/internal/test_runner/runner.js and test/parallel/test-runner-v8-deserializer.mjs, with the targeted test, lint, and full test suite run. Would maintainers like me to open that backport PR? If so, a confirmation and/or the appropriate v22 backport labels would be appreciated.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bsparkma bsparkma mentioned this pull request Aug 31, 2026
Split the backend suite so no one process reads the whole test stream bsparkma/retell-ai-dashboard#131
Merged
bsparkma added a commit to bsparkma/retell-ai-dashboard that referenced this pull request Aug 31, 2026
@bsparkma @claude
Split the backend suite so no one process reads the whole test stream (…
adaa4e4
…#131)

The `Unable to deserialize cloned data due to invalid or unsupported
version` failures are a bug in Node's own test runner, not in this repo.
`node --test` streams results from a child process per file back to a parent
that deserializes them, and the parent decodes each message's size from four
bytes with a signed shift — so a size whose top byte has the high bit set
reads as negative and the next slice comes from the wrong place. It surfaces
as an uncaughtException against an arbitrary file with no assertion in it,
and the reported test count DROPS, which is how it can be told apart from a
real failure.

Upstream fixed it in nodejs/node#64706 by making that decode unsigned. It is
released in v24.20.0 and v26.7.0 and in NO release of Node 22 — 22.23.2 is
the newest and does not carry it, and the PR has no v22 backport label. The
runtime image is node:22-alpine, so CI stays on 22 deliberately: testing on a
Node the container does not ship would be the worse trade. Pinning cannot fix
this.

So the suite runs as four `node --test` invocations instead of one. Each is
its own parent reading its own stream, so no single process decodes the whole
thing. That reduces exposure roughly in proportion; it does not remove the
mechanism, and neither this commit message nor the script claims otherwise.

Deliberately no retry. A retry that turns a genuine red into a green is worse
than the flake it hides, and one loud enough to be safe is a bigger change
than this — worth building only if sharding proves insufficient.

Node's own `--test-shard` does the discovery and the partition, because a
chunker that globbed for test files itself would have to reimplement Node's
rules and the failure mode of getting them slightly wrong is a directory that
silently stops being tested. The guards cover the one way this script could
still drop tests: a shard that ran nothing fails the job, as does any
non-zero exit or any failing test. The totals are printed and written to the
job summary so a drop is visible rather than inferred.

Also fixes a stale comment: it described Node 22.15, which is what the
version floated to when it was written. CI runs 22.23.2 today.

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
This was referenced Sep 3, 2026
flaky: Node 26.5 test-runner IPC deserialize failure makes make test non-deterministic (file-level, pre-existing) caty-ai/meetmate#38
Closed
ci(test): raise the test-toolchain Node floor to 26.7.0 (#38) caty-ai/meetmate#174
Merged
shojikumaru added a commit to caty-ai/meetmate that referenced this pull request Sep 4, 2026
@shojikumaru @alpha-mbp-bridge @claude
ci(test): raise the test-toolchain Node floor to 26.7.0 (#38) (#174)
55aa52e
Node 26.0-26.6's node:test runner corrupts the worker->parent IPC stream
under load and dies with "Unable to deserialize cloned data due to invalid
or unsupported version", truncating a suite's test count (file-level red)
even with one file per process. Upstream fix nodejs/node#64706 (closes
nodejs/node#64061) shipped in v26.7.0.

ensure-node.sh now compares the full version against 26.7.0 instead of
only the major, so hosts on 26.0-26.6 get bootstrapped exactly like the
bare CI runner already is (latest-v26.x). Test isolation stays at the
default (process); engines.node >= 26 is unchanged (runtime unaffected).
Reasoning, measurement matrix and repro live in
docs/test-runner-node-floor.md.

Co-authored-by: Alpha (Claude Code) <[email protected]>
Co-authored-by: Claude Fable 5.1 <[email protected]>
P4suta pushed a commit to P4suta/node that referenced this pull request Sep 5, 2026
@avivkeller @P4suta
test_runner: convert to uint during deserialization
cf2e98f
Signed-off-by: Aviv Keller <[email protected]>
PR-URL: nodejs#64706
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
@P4suta P4suta mentioned this pull request Sep 5, 2026
[v22.x backport] test_runner: avoid hanging on incomplete v8 frames #65807
Open
@positivef positivef mentioned this pull request Sep 9, 2026
test_runner: backport #64706 to v22.x — non-ASCII test stdout can silently drop a whole test file #65934
Open
positivef pushed a commit to positivef/node that referenced this pull request Sep 9, 2026
@avivkeller
test_runner: convert to uint during deserialization
617f2d1
Signed-off-by: Aviv Keller <[email protected]>
PR-URL: nodejs#64706
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
@positivef positivef mentioned this pull request Sep 9, 2026
[v22.x backport] test_runner: convert to uint during deserialization #65939
Closed
@incipienstation incipienstation mentioned this pull request Sep 14, 2026
feat(web): finish updates automatically without a Refresh step incipienstation/palmagent#65
Merged
3 tasks done
@fan56 fan56 mentioned this pull request Sep 21, 2026
test_runner: parent runner still crashes on child stdout bytes that mimic an event frame (survives the #64706 fix) #66164
Closed
@ootakazuhiko ootakazuhiko mentioned this pull request Sep 21, 2026
QA: restore explicit ownership and deterministic execution of four legacy test suites itdojp/book-formatter#164
Closed
6 tasks done
@HailLucifer666 HailLucifer666 mentioned this pull request Sep 23, 2026
test: keep verify-lib off the test runner's report channel (verify-lib-attach vanishing) HailLucifer666/Agent_OS#104
Merged
@faizanu94 faizanu94 mentioned this pull request Sep 25, 2026
test_runner: do not crash on stdout that mimics a v8 frame #66273
Merged
@pacphi pacphi mentioned this pull request Sep 29, 2026
fix(usage): complete session attribution and accounting remediation pacphi/agentic-kit#282
Merged
This was referenced Oct 1, 2026
chore: raise minimum supported Node to 22 and test 24 and 26 rolecraft-sh/rolecraft#383
Merged
chore: check doc values before merge instead of repairing after rolecraft-sh/rolecraft#398
Merged
@lpaiu-cs lpaiu-cs mentioned this pull request Oct 3, 2026
테스트 자식의 console 을 stderr 로 돌려 러너 역직렬화 실패를 없앤다 lpaiu-cs/gpt-chat-pr-reviewer#57
Merged
@edwardricardo edwardricardo mentioned this pull request Oct 10, 2026
test(api): send node:test diagnostics to stderr so stdout stays the runner's channel edwardricardo/omni-post#540
Merged
@stebo85 stebo85 mentioned this pull request Oct 12, 2026
fix: resolve correctness findings and preserve original failures neurodesk/webapps#247
Merged
@Kenbak Kenbak mentioned this pull request Oct 15, 2026
Fix Node 22 backend CI output framing failure Kenbak/zecblock#132
Merged
This was referenced Oct 15, 2026
test: stabilize Node20 test-runner transport without weakening assertions itdojp/IT-infra-troubleshooting-book#165
Closed
ci: pin Book QA to audited formatter c4dcd01 itdojp/IT-infra-troubleshooting-book#164
Merged
test: stabilize Node20 diagnostics without weakening assertions itdojp/IT-infra-troubleshooting-book#166
Merged
@yongkyuns yongkyuns mentioned this pull request Oct 17, 2026
Pin scripting coverage to the fixed Node test runner yongkyuns/noon#2179
Merged
@1395490241lhj-code 1395490241lhj-code mentioned this pull request Oct 21, 2026
fix(deps): update follow-redirects to 1.16.1 1395490241lhj-code/kitchenmanager#35
Merged
4 of 6 tasks
@Nictolas Nictolas mentioned this pull request Oct 26, 2026
privacy: serialize Firebase invalid-token cleanup across all backend writers Nictolas/DemosApp#346
Draft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@MoLow MoLow MoLow approved these changes
@atlowChemi atlowChemi atlowChemi approved these changes
@JakobJingleheimer JakobJingleheimer Awaiting requested review from JakobJingleheimer

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. needs-ci PRs that need a full CI run. test_runner Issues and PRs related to the test runner subsystem.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Error: Unable to deserialize cloned data due to invalid or unsupported version

Uh oh!

There was an error while loading. Please reload this page.

5 participants

@avivkeller @nodejs-github-bot @P4suta @MoLow @atlowChemi
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.