Repository navigation
fix: backport Node.js cleanup hook fixes for node::ObjectWrap addons (43-x-y) - #53393
Merged
Merged
Conversation
Node.js 24.19.0 made node::ObjectWrap register an environment cleanup hook but did not carry the fix that makes RemoveEnvironmentCleanupHook() safe to call from ~ObjectWrap() during garbage collection, so any addon built against the 24.19.0+ headers aborts with "Assertion failed: (env) != nullptr" once one of its wrapped objects is collected while no context is entered. Cherry-picks: * nodejs/node#63985 "src: keep global list of addon-provided cleanup hooks" (68321eff80918e324e9fdaf1aa8cee6db14b84f7 on nodejs/node main). * nodejs/node#65630 "src: fix use-after-free in CleanupHookThunkRun" at dd2fa31b1d99e5a6710e08ce4139da7c2e344598 and its regression cctest at fd325a7fc2b33839c024220aa0c44b9104749686 (not yet landed upstream). Fixes: #53387 Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
Adds a minimal node::ObjectWrap addon fixture with a helper that runs a full garbage collection while no context is entered, and a spec that loads it in an ELECTRON_RUN_AS_NODE child process and asserts the process exits cleanly. Reproduces #53387 on unfixed builds. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
4 of 6 tasks
The native addon fixtures under spec/fixtures/native-addon are yarn workspaces, so yarn only runs their build scripts once per install state. In CI the root `yarn install` builds them first, against the system Node.js headers, and the later spec install with npm_config_nodedir set never rebuilds them. N-API fixtures load anyway, but the object-wrap fixture uses Node's C++ API, embeds the system NODE_MODULE_VERSION, and is rejected by Electron with ERR_DLOPEN_FAILED. Rebuild every native addon fixture with node-gyp after the spec install so they are compiled against the configured Electron headers, which is what spec-runner already intended. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
The rebuild of the native addon fixtures against Electron's node headers broke every Linux test shard: the CI test image ships GCC 11, which cannot parse the V8 headers (`class V8_DEPRECATE_SOON(...) V8_EXPORT Value` mixes a C++11 attribute with a GNU attribute, rejected by GCC <= 12, see #53284): v8config.h:865:20: error: expected identifier before '__attribute__' v8-primitive.h:658:4: error: expected '}' before 'public' Only addons registering through Node's C++ module API (NODE_MODULE / NODE_MODULE_INIT) embed NODE_MODULE_VERSION and need Electron's headers, so limit the rebuild to those; the N-API fixtures keep loading fine as built by the root install. On Linux, when the Chromium toolchain from the source checkout is present (CI restores third_party/llvm-build and libc++ into the test job via src_artifacts, and the nan tests already build with it), compile the fixture with clang and Electron's libc++ exactly as script/nan-spec-runner.js does; otherwise, and for the --electronVersion prebuilt path, keep using the system compiler. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
…indows
The Windows test shards failed the fixture rebuild before configure:
node-gyp inherits NPM_CONFIG_MSVS_VERSION=2022 from the test step's env,
but the runners only ship a newer Visual Studio ("msvs_version does not
match this version"). The root install that built the same fixtures ran
without that pin and picked the installed toolset, so strip it from the
rebuild environment and let node-gyp detect Visual Studio. The Electron
import library it links against is already staged by
script/actions/move-artifacts.sh as gen/node_headers/Release/node.lib.
Also replace the source scan for NODE_MODULE usage with an explicit
"electron:requiresElectronHeaders" flag in the fixture's package.json, so
only fixtures that declare they need Electron's headers (currently
object-wrap) are rebuilt and the N-API fixtures are left untouched.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
…ture The rebuild of spec/fixtures/native-addon/object-wrap against Electron's headers broke two more sets of Linux test shards: * linux-arm64: the test job runs on an arm64 host but restores the x64 Chromium toolchain of the cross-compiling build job, so node-gyp died with "Exec format error: .../llvm-build/Release+Asserts/bin/clang". The image's GCC is the one that rejects the V8 headers (#53284), so nothing on that host can compile the fixture. Check that the Chromium clang actually runs before selecting it; when it does not, warn loudly, skip the rebuild and export ELECTRON_SKIP_ELECTRON_HEADER_ADDON_SPECS so the ObjectWrap spec is reported as skipped there (with a comment pointing at this gap) instead of failing with an ABI error. Every other platform keeps running the spec for real. * linux-x64-asan / -ubsan: the link failed with "ld.lld: error: unable to find library -lc++abi". Sanitizer builds compile libc++abi into the electron executable and export it from there (export_libcxxabi_from_executables) rather than producing libc++abi.a, so only pass -lc++abi when that archive exists; the symbols resolve from the executable when the addon is loaded. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U (cherry picked from commit a723f64)
…kipped
The linux-arm test job runs the specs with --skipYarnInstall, so the spec
install that rebuilds spec/fixtures/native-addon/object-wrap against
Electron's headers never happens there and the ObjectWrap spec failed to
load the fixture the root install built against the system Node.js
headers ("was compiled against a different Node.js version using
NODE_MODULE_VERSION 127. This version of Node.js requires
NODE_MODULE_VERSION 146"). When the install is needed but skipped, warn
and export ELECTRON_SKIP_ELECTRON_HEADER_ADDON_SPECS so those specs are
reported as skipped, as on linux-arm64 where no toolchain can build the
fixture.
Also format the previous change with oxfmt, which `yarn lint:fmt`
flagged in CI.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
(cherry picked from commit de4cc41)
MarshallOfSound
marked this pull request as ready for review
September 2, 2026 21:43
deepak1556
approved these changes
Sep 3, 2026
MarshallOfSound
approved these changes
Sep 3, 2026
|
Release Notes Persisted
|
Merged
15 tasks done
renovate Bot
added a commit
to cigaleapp/cigale
that referenced
this pull request
Sep 13, 2026
##### [v44.2.0](https://github.com/electron/electron/releases/tag/v44.2.0) ### Release Notes for v44.2.0 #### Fixes - Fixed a pending read on a `net.request` chunked upload stream inside a protocol handler never settling when the request failed or was aborted. [#53373](electron/electron#53373) <sup>(Also in [43](electron/electron#53374), [45](https://github.com/electron/electron/pull/53368))</sup> - Fixed a potential crash when using `menu.popup` with a frame from an offscreen rendered window. [#53362](electron/electron#53362) <sup>(Also in [43](https://github.com/electron/electron/pull/53432))</sup> - Fixed an intermittent crash (access violation) on Windows when an ASAR integrity violation is detected, so the process now exits with code 1 as intended. [#53455](electron/electron#53455) <sup>(Also in [43](electron/electron#53456), [45](https://github.com/electron/electron/pull/53438))</sup> - Fixed application crash after a large number of IPC messages from renderers. [#53417](electron/electron#53417) <sup>(Also in [42](electron/electron#53419), [43](electron/electron#53420), [45](https://github.com/electron/electron/pull/53418))</sup> - Fixed native addons deriving from `node::ObjectWrap` aborting during garbage collection on Node.js 24.19.0 and later. [#53392](electron/electron#53392) <sup>(Also in [42](electron/electron#53394), [43](electron/electron#53393), [45](https://github.com/electron/electron/pull/53391))</sup> #### Other Changes - Backported fixes from upstream ANGLE, Chromium, Skia and V8. [#53479](electron/electron#53479) - Improved throughput of responses that `protocol.handle` handlers return straight from `net.fetch`. [#53378](electron/electron#53378) - Updated Chromium to 152.0.7977.76. [#53382](electron/electron#53382) - Updated Node.js to v24.20.0. [#53250](electron/electron#53250) ##### [v44.1.1](https://github.com/electron/electron/releases/tag/v44.1.1) ### Release Notes for v44.1.1 #### Fixes - Fixed `chrome.tabs.query()` returning tab `url` and `title` to extensions without the `tabs` permission or host access, aligning with `tabs.get`. [#53354](electron/electron#53354) <sup>(Also in [42](electron/electron#53355), [43](electron/electron#53356), [45](https://github.com/electron/electron/pull/53353))</sup> - Fixed a renderer crash when an array with a throwing property getter is passed across `contextBridge`, and several main/utility-process crashes when option objects passed to Electron APIs contain throwing accessors or Proxy traps. [#53331](electron/electron#53331) <sup>(Also in [42](electron/electron#53329), [43](https://github.com/electron/electron/pull/53330))</sup> - Fixed an intermittent crash at startup on Linux caused by a race between Pango and the main thread initializing fontconfig. [#53340](electron/electron#53340) <sup>(Also in [43](electron/electron#53339), [45](https://github.com/electron/electron/pull/53338))</sup> - Fixed an issue where an exception thrown by a property getter on an object passed through `contextBridge` was swallowed instead of being thrown back to the caller. [#53335](electron/electron#53335) <sup>(Also in [43](electron/electron#53334), [45](https://github.com/electron/electron/pull/53297))</sup> - Fixed main process crashes when navigating to `http://accessibility/` or `http://devtools/`, when an extension background page used `navigator.mediaDevices`, and when calling `SerialPort.forget()` for a disconnected device. [#53333](electron/electron#53333) <sup>(Also in [43](electron/electron#53332), [45](https://github.com/electron/electron/pull/53325))</sup> - Fixed the PDF viewer failing to save an edited PDF with `NotAllowedError: Third party iframes are not allowed to show a file picker`. [#53328](electron/electron#53328) <sup>(Also in [43](electron/electron#53327), [45](https://github.com/electron/electron/pull/53326))</sup>
gwennlbh
pushed a commit
to cigaleapp/cigale
that referenced
this pull request
Sep 14, 2026
##### [v44.2.0](https://github.com/electron/electron/releases/tag/v44.2.0) ### Release Notes for v44.2.0 #### Fixes - Fixed a pending read on a `net.request` chunked upload stream inside a protocol handler never settling when the request failed or was aborted. [#53373](electron/electron#53373) <sup>(Also in [43](electron/electron#53374), [45](https://github.com/electron/electron/pull/53368))</sup> - Fixed a potential crash when using `menu.popup` with a frame from an offscreen rendered window. [#53362](electron/electron#53362) <sup>(Also in [43](https://github.com/electron/electron/pull/53432))</sup> - Fixed an intermittent crash (access violation) on Windows when an ASAR integrity violation is detected, so the process now exits with code 1 as intended. [#53455](electron/electron#53455) <sup>(Also in [43](electron/electron#53456), [45](https://github.com/electron/electron/pull/53438))</sup> - Fixed application crash after a large number of IPC messages from renderers. [#53417](electron/electron#53417) <sup>(Also in [42](electron/electron#53419), [43](electron/electron#53420), [45](https://github.com/electron/electron/pull/53418))</sup> - Fixed native addons deriving from `node::ObjectWrap` aborting during garbage collection on Node.js 24.19.0 and later. [#53392](electron/electron#53392) <sup>(Also in [42](electron/electron#53394), [43](electron/electron#53393), [45](https://github.com/electron/electron/pull/53391))</sup> #### Other Changes - Backported fixes from upstream ANGLE, Chromium, Skia and V8. [#53479](electron/electron#53479) - Improved throughput of responses that `protocol.handle` handlers return straight from `net.fetch`. [#53378](electron/electron#53378) - Updated Chromium to 152.0.7977.76. [#53382](electron/electron#53382) - Updated Node.js to v24.20.0. [#53250](electron/electron#53250) ##### [v44.1.1](https://github.com/electron/electron/releases/tag/v44.1.1) ### Release Notes for v44.1.1 #### Fixes - Fixed `chrome.tabs.query()` returning tab `url` and `title` to extensions without the `tabs` permission or host access, aligning with `tabs.get`. [#53354](electron/electron#53354) <sup>(Also in [42](electron/electron#53355), [43](electron/electron#53356), [45](https://github.com/electron/electron/pull/53353))</sup> - Fixed a renderer crash when an array with a throwing property getter is passed across `contextBridge`, and several main/utility-process crashes when option objects passed to Electron APIs contain throwing accessors or Proxy traps. [#53331](electron/electron#53331) <sup>(Also in [42](electron/electron#53329), [43](https://github.com/electron/electron/pull/53330))</sup> - Fixed an intermittent crash at startup on Linux caused by a race between Pango and the main thread initializing fontconfig. [#53340](electron/electron#53340) <sup>(Also in [43](electron/electron#53339), [45](https://github.com/electron/electron/pull/53338))</sup> - Fixed an issue where an exception thrown by a property getter on an object passed through `contextBridge` was swallowed instead of being thrown back to the caller. [#53335](electron/electron#53335) <sup>(Also in [43](electron/electron#53334), [45](https://github.com/electron/electron/pull/53297))</sup> - Fixed main process crashes when navigating to `http://accessibility/` or `http://devtools/`, when an extension background page used `navigator.mediaDevices`, and when calling `SerialPort.forget()` for a disconnected device. [#53333](electron/electron#53333) <sup>(Also in [43](electron/electron#53332), [45](https://github.com/electron/electron/pull/53325))</sup> - Fixed the PDF viewer failing to save an edited PDF with `NotAllowedError: Third party iframes are not allowed to show a file picker`. [#53328](electron/electron#53328) <sup>(Also in [43](electron/electron#53327), [45](https://github.com/electron/electron/pull/53326))</sup> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Brosski224
pushed a commit
to Natively-AI-assistant/natively-cluely-ai-assistant
that referenced
this pull request
Oct 4, 2026
…exact) 43.1.0 is three months behind on Chromium and V8 fixes; npm audit flags every 43.x below 43.7.7. Same ABI (148), Node 24.18.0 -> 24.21.0, Chromium 150.0.7871.47 -> .250. Electron 44 is not taken: it links ANGLE statically (the Windows build gate requires libEGL.dll / libGLESv2.dll), drops macOS 12, moves to ABI 149 and removes openAsHidden, which windowsTaskbarPolicy passes. Native modules must be rebuilt for the new headers (postinstall does): better-sqlite3 and keytar rebuilt from source against 43.7.7. 43.5.x shipped Node 24.19/24.20, where node::ObjectWrap addons such as better-sqlite3 abort during GC; the fix landed in 43.6.0 (electron/electron#53393). A forced-GC soak of better-sqlite3 (24,000 statements, main thread and worker threads) passes on 43.7.7. tests/css/bubble-liquid-glass.check.mjs: MIN_UNDERSIDE 12 -> 10. 43.7.1 fixed capturePage() on offscreen windows (electron/electron#53818); it used to return the 1x render resampled to the display scale, and the check's lower bar was met only through that resampling (16.3). The real render reads 11.2 at 1x and at 2x, on 43.1.0 and on 43.7.7 alike. The app uses no offscreen windows, so its own rendering is unchanged. Typechecks (TS5 + TS7), build, npm test, test:intelligence, test:lib, test:components, test:scripts, test:llm, test:services, test:meeting-notes, test:core-smoke, test:vision-benchmark, test:diagram (+render, card, overlay), test:css, test:meet-dom: same results as before the change. OPEN: the first dev launch after this upgrade came up with the launcher window missing its preload bridge (window.electronAPI undefined, 'ipcNative object missing' in the log, launcher crash screen; a reload fixed it). Twenty further launches were clean and it never reproduced. Unexplained; never seen in three launches on 43.1.0. Soak a packaged build before release. macOS arm64 only; Windows and Intel not run. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Brosski224
pushed a commit
to Natively-AI-assistant/natively-cluely-ai-assistant
that referenced
this pull request
Oct 5, 2026
…exact) 43.1.0 is three months behind on Chromium and V8 fixes; npm audit flags every 43.x below 43.7.7. Same ABI (148), Node 24.18.0 -> 24.21.0, Chromium 150.0.7871.47 -> .250. Electron 44 is not taken: it links ANGLE statically (the Windows build gate requires libEGL.dll / libGLESv2.dll), drops macOS 12, moves to ABI 149 and removes openAsHidden, which windowsTaskbarPolicy passes. Native modules must be rebuilt for the new headers (postinstall does): better-sqlite3 and keytar rebuilt from source against 43.7.7. 43.5.x shipped Node 24.19/24.20, where node::ObjectWrap addons such as better-sqlite3 abort during GC; the fix landed in 43.6.0 (electron/electron#53393). A forced-GC soak of better-sqlite3 (24,000 statements, main thread and worker threads) passes on 43.7.7. tests/css/bubble-liquid-glass.check.mjs: MIN_UNDERSIDE 12 -> 10. 43.7.1 fixed capturePage() on offscreen windows (electron/electron#53818); it used to return the 1x render resampled to the display scale, and the check's lower bar was met only through that resampling (16.3). The real render reads 11.2 at 1x and at 2x, on 43.1.0 and on 43.7.7 alike. The app uses no offscreen windows, so its own rendering is unchanged. Typechecks (TS5 + TS7), build, npm test, test:intelligence, test:lib, test:components, test:scripts, test:llm, test:services, test:meeting-notes, test:core-smoke, test:vision-benchmark, test:diagram (+render, card, overlay), test:css, test:meet-dom: same results as before the change. OPEN: the first dev launch after this upgrade came up with the launcher window missing its preload bridge (window.electronAPI undefined, 'ipcNative object missing' in the log, launcher crash screen; a reload fixed it). Twenty further launches were clean and it never reproduced. Unexplained; never seen in three launches on 43.1.0. Soak a packaged build before release. macOS arm64 only; Windows and Intel not run. Co-Authored-By: Claude Opus 5.5 <[email protected]>
shariqh
added a commit
to shariqh/agent-inbox
that referenced
this pull request
Oct 24, 2026
Electron 43.8.1 contains the fix for GHSA-jr5w-w6x2-84p9, the mitigation for compromised eMudhra intermediate certificates. It also makes link-opened windows use the opener's session and webPreferences (electron/electron#55049), and setCertificateVerifyProc is no longer skipped for a request issued concurrently with the first request to a host (electron/electron#55047). 43.8.3, the newest 43.x release, adds electron/electron#55147: 64 upstream cherry-picks from ANGLE, Chromium, PDFium, Skia and V8, including use-after-free fixes and "[net] Validate server certificate before generating auth token". It embeds the same Node.js 24.22.0, so the modules ABI stays 148. Update every pin together so the release-input gates agree, as #191 did: - the package.json devDependency and allowScripts entry, and package-lock.json (npm install --save-exact [email protected]); - electron.version in release/linux-inputs.json, release/macos-inputs.json and release/windows-inputs.json, and PINNED_ELECTRON_VERSION in scripts/windows-release-inputs.mjs; - the linux-inputs.json SHA-256 pinned by the AppImage (x64, arm64) and DEB contracts, and their tests; - the tests that compare with the real pins, and the release docs. Test placeholders that never compare with the real pin, and historical records, keep 43.8.0. How Electron's downloads are checked: the release build does not use the npm package's checksums.json. The three thin-app builders call packager() without a download or electronZipDir option, so @electron/get checks each zip only against the release's live SHASUMS256.txt. At bump time all 75 checksums.json entries matched the official v43.8.3 SHASUMS256.txt, and the five packaged zips also match GitHub's asset digests. Pinning the build to checksums.json is tracked in #363. The #135 fix now comes from Node.js itself: Electron dropped its electron/electron#53393 backport when 43.8.0 moved to Node.js 24.22.0 (electron/electron#55003), because 24.22.0 carries the cleanup-hook registry fix. 43.7.11 is the last release with the patches. docs/macos-release.md and the electron-sqlite-check abort message now say so. nodejs/node#65446 is still open, and the portable runtime keeps its 24.18.1 hold (#362). Every packaging job's allocation-driven SQLite check passed under Electron 43.8.3 with Node v24.22.0 (ABI 148): the Linux folders, AppImage and DEB on x64 and arm64, both macOS thin apps (native Intel included), and the Windows native folder and MSI folders. The Electron executable still needs glibc 2.25 on Linux x64 and arm64. Supersedes #355. Co-authored-by: Copilot <[email protected]> Copilot-Session: 9e7ec7a7-8690-49e5-9d55-492fedc3027a
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description of Change
Backport of #53390
See that PR for details.
Checklist
npm testpassesRelease Notes
Notes: Fixed native addons deriving from
node::ObjectWrapaborting during garbage collection on Node.js 24.19.0 and later.🤖 Generated with Claude Code
https://claude.ai/code/session_01NawBg2exXYXTXt12SBGe9U
Generated by Claude Code