Skip to content

chore: bump node to v24.19.0 (main) - #52638

Merged
deepak1556 merged 30 commits into
mainfrom
roller/node/main
Aug 27, 2026
Merged

deepak1556 merged 30 commits into
mainfrom
roller/node/main

Conversation

@electron-roller

Copy link
Copy Markdown
Contributor

Updating Node.js to v24.19.0.

See all changes in v24.18.1..v24.19.0

Notes: Updated Node.js to v24.19.0.

@electron-roller
electron-roller Bot requested a review from a team as a code owner August 4, 2026 13:01
@electron-roller electron-roller Bot added semver/patch backwards-compatible bug fixes no-backport labels Aug 4, 2026
@electron-cation electron-cation Bot added the new-pr 🌱 PR opened recently label Aug 4, 2026
@ckerr
ckerr requested a review from a team as a code owner August 4, 2026 23:34
@ckerr
ckerr force-pushed the roller/node/main branch from 78321d6 to ad5aacb Compare August 5, 2026 01:54
@electron-cation electron-cation Bot removed the new-pr 🌱 PR opened recently label Aug 5, 2026
@ckerr
ckerr force-pushed the roller/node/main branch 3 times, most recently from 9c7456d to f620808 Compare August 5, 2026 21:10
@ckerr
ckerr force-pushed the roller/node/main branch from a3fa169 to b7986d1 Compare August 7, 2026 14:50

@jkleinsc jkleinsc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI review uncovered an issue that needs to be addressed in this PR:

Missing tracing-agent registration in the utility-process Node service

JavascriptEnvironment no longer creates its own tracing agent —
shell/browser/javascript_environment.h
now expects the caller to supply a v8::TracingController* (default nullptr),
and each Node-hosting entry point was updated to call
NodeBindings::InitializeTracingAgent(...) beforehand:

shell/services/node/node_service.cc (the
BrowserEnvironment::kUtility service backing utilityProcess.fork()) is the
one path that was not updated — Initialize() calls
js_env_.emplace(node_bindings_->uv_loop()) directly, so tracing_controller
defaults to nullptr and RegisterPerfettoTrackEvent() is never invoked for
this process type.

Impact

Unlike the browser/renderer/worker paths (which intentionally leave
tracing::Agent null but still register the TrackEvent data source via
RegisterPerfettoTrackEvent()), the utility Node service never registers
Node's TrackEvent data source with Chromium's Perfetto client at all.
node.* trace categories emitted from utilityProcess.fork() workloads (fs,
http, async_hooks, etc.) won't be captured by contentTracing, even though the
other three embedded process types work correctly.

Suggested fix

// in NodeService::Initialize, before js_env_.emplace(...)
NodeBindings::InitializeTracingAgent(/*use_standalone_perfetto_client=*/false);
js_env_.emplace(node_bindings_->uv_loop());

@MarshallOfSound

Copy link
Copy Markdown
Member

Heads up: Windows CI builds moved to new runners on Monday and the old ones have now been removed. This branch predates that, so its Windows build jobs still point at the old runners and will sit queued forever if CI runs again. Rebasing on main (or "Update branch") picks up the change, nothing else needed.

@jkleinsc
jkleinsc force-pushed the roller/node/main branch 2 times, most recently from 5975bc4 to dd007b5 Compare August 24, 2026 14:24
Comment thread patches/node/support_v8_sandboxed_pointers.patch Outdated
Comment thread patches/node/test_formally_mark_some_tests_as_flaky.patch Outdated
electron-roller Bot and others added 7 commits August 26, 2026 15:40
Ref: nodejs/node#64053

Co-Authored-By: GitHub Copilot <copilot@github.com>
Co-Authored-By: GitHub Copilot <copilot@github.com>
Backport Node's Perfetto tracing agent now that Chromium V8 no longer exposes the legacy tracing controller APIs.

Ref: nodejs/node#64565

Ref: nodejs/node#64721

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: nodejs/node#62935

Ref: nodejs/node#64480

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: nodejs/node#64094

Co-Authored-By: GitHub Copilot <copilot@github.com>
ckerr and others added 15 commits August 26, 2026 15:40
Virtual CommonJS files rooted at process.execPath inherit the output directory's type=module package unless the runner hides it alongside Chromium's root package.

Ref: nodejs/node#44713

Co-Authored-By: GitHub Copilot <copilot@github.com>
Node's fs.rmSync() delegates recursive deletion to
std::filesystem::remove_all(). Electron's Linux build uses libc++, which
reports ENOTEMPTY here while Node's libstdc++ build reports EACCES.

Ref: nodejs/node#57103

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: nodejs/node#33085

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: #50591

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>
Ref: nodejs/node#56534

Co-Authored-By: GitHub Copilot <copilot@github.com>
The ChunkedDataPipeReadableStream liveness test can exceed the remote fixture's 30-second watchdog under Linux ASAN, which disconnects the control socket before assertions run.

Ref: #52447

Co-Authored-By: GitHub Copilot <copilot@github.com>
Electron builds Node exclusively with Perfetto since #50591. Wire the upstream Perfetto agent directly and drop the legacy header split and dual-backend source lists.

Ref: #50591

Ref: nodejs/node#64565

Co-Authored-By: GitHub Copilot <copilot@github.com>
The Node upgrade moved tracing setup out of JavascriptEnvironment, but the utility process did not adopt the explicit registration used by other embedded Node hosts. Register its TrackEvent data source with Chromium before creating the isolate.

Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Comment thread shell/app/node_main.cc Outdated
Comment thread shell/renderer/web_worker_observer.cc Outdated
Comment thread patches/node/support_v8_sandboxed_pointers.patch Outdated
Allocate ValueSerializer buffers as V8 backing stores and retain the
original backing store when adopting the released buffer. This preserves
the shared allocator lifetime when serialized buffers are transferred
from a worker and outlive its isolate.

@dsanders11 dsanders11 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't block on my one remaining unresolved comment. LGTM, happy to see the Perfetto stuff land and thanks for working through it all everyone. 🙂

@deepak1556
deepak1556 enabled auto-merge (squash) August 27, 2026 03:38
@deepak1556
deepak1556 merged commit fe4cffa into main Aug 27, 2026
135 of 137 checks passed
@deepak1556
deepak1556 deleted the roller/node/main branch August 27, 2026 09:09
@release-clerk

release-clerk Bot commented Aug 27, 2026

Copy link
Copy Markdown

Release Notes Persisted

Updated Node.js to v24.19.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-backport roller/pause semver/patch backwards-compatible bug fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants