Windows: bundled Node v24.16.0 can abort at exit (nodejs/node#56645); please bundle Node >= 24.20.0
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 67/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- github-actions, javascript, node.js
- Domain
- build-system, devops
Research direction
Start by reading scripts/build-bundle.sh and checking its default NODE_VERSION; verify which bundled runtime versions the release process uses, especially for win32 bundles. Update the bundle to Node 24.21.0 or later, then confirm the build reports the expected version. Done when the next release bundles the updated runtime for Windows.
Written by the indexing model from the issue text.
Description
Summary
The 1.6.2 bundles (and scripts/build-bundle.sh's default NODE_VERSION) ship Node v24.16.0. On Windows that release carries nodejs/node#56645: at process exit, a V8 platform worker can post a delayed task after the scheduler's uv_async handle has started closing, and libuv aborts with
Assertion failed: !(handle->flags & UV_HANDLE_CLOSING), file src\win\async.c, line 94
and status 0xC0000409, after the command's work has already completed. Node fixed it in 24.20.0 (nodejs/node#61999, listed in CHANGELOG_V24.md). Node 24.21.0 also contains the 8.3-short-path file-watcher fix (nodejs/node#65118), which matters if the watcher runs under a runner temp dir.
What we saw
In hosted Windows CI, codegraph sync <root> --quiet (1.6.1, launched through npm-shim.js, bundled node.exe) printed exactly that assertion and exited with status 9. That is 0xC0000409 cut to its low byte by the caller. The work had finished; the crash happened during teardown. Our tooling correctly treats a nonzero exit as failure, so this fails a run that would otherwise be correct.
Measured
- win32-x64 1.6.2 bundled
node.exe --version→v24.16.0(hostedwindows-latest); darwin-arm64 1.6.2 →v24.16.0. - A 20-minute, two-runner Windows stress of
init/sync --quiet/status -j(bundled v24.16.0 vs the same entry and--liftoff-onlyflags on Node v24.21.0, 4 workers each) did not reproduce it: 0 nonzero exits in about 2,840 children per runtime. The abort is rare and load-dependent. Other projects report about 1 in 10 CI runs, and moving to Node ≥ 24.20 cleared it for them (for example pawaca/dsh-edge#277).
The 1.6.2 notes on helper-thread start-up and clean-up (the 3221225477 access violation) address a different crash. This one is inside Node's own platform shutdown, so it needs the runtime bump.
Request
Bundle Node ≥ 24.20.0 (24.21.0 preferred) in the next release, at least for the win32 bundles.
- Dominant language
- C
- Stars
- 73.2k
- Forks
- 4.7k
- Avg merge
- 13h 27m
- Merged PRs (30d)
- 518
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from colbymchenry/codegraph
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
colbymchenry/codegraph#2634 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 Under an hour Newbie friendliness 72/100
colbymchenry/codegraph#2482 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
colbymchenry/codegraph#1900 · 2 comments · 5 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
colbymchenry/codegraph#1700 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
colbymchenry/codegraph#1535 · 2 comments · 2 reactions ·
Maintainers usually reply within 1 day
All issues in colbymchenry/codegraph
Similar issues
-
v9.6.0: CMake incorrectly enforces presence of libevdevPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
[Bug] Unhandled ValueError terminates watchdog thread when GISRC value contains multiple colonsOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
bug Component component: net
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
RT-Thread/rt-thread#11913 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
contiki-ng/contiki-ng#3289 ·
Maintainers usually reply within 3 days
-
area:docs help wanted type:enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day