-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
[v25.x] v8: changing total_allocated_bytes to avoid ABI changes #60800
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v25.x-staging
Are you sure you want to change the base?
Conversation
|
Review requested:
|
RafaelGSS
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
|
Hi all, could someone help me trigger CI again, please? |
|
Up |
|
I'm getting permission errors to look what is failing on CI. Probably it already expired. Does any of you have permission to see what's failing? |
5669bd4 to
f6b05d5
Compare
9f2e230 to
65696e4
Compare
Failed to start CI⚠ Commits were pushed since the last approving review: ⚠ - tools: fix linter warning in `test-shared.yml` ⚠ - doc: correct concurrency wording in test() documentation ⚠ - build: fix OpenSSL version parsing for OpenSSL < 3 ⚠ - test_runner: simplify code and make it more consistent ⚠ - repl: tab completion targets `` instead of `new ` ⚠ - tools: bump js-yaml from 4.1.0 to 4.1.1 in /tools/lint-md ⚠ - deps: update brotli to 1.2.0 ⚠ - deps: upgrade npm to 11.6.3 ⚠ - tools: dump config.gypi as json ⚠ - lib: prefer `call()` over `apply()` if argument list is not array ⚠ - src: rename config file testRunner to test ⚠ - src: add test flag to config file ⚠ - src: add permission flag to config file ⚠ - doc: fix webstorage config file property ⚠ - src: implicitly enable namespace in config ⚠ - doc: keep sidebar module visible when navigating docs ⚠ - deps: update sqlite to 3.51.0 ⚠ - deps: add temporal_rs 0.1.0 ⚠ - build: add temporal_capi gyp ⚠ - test: add basic temporal presence check ⚠ - build: ignore built-in temporal when building with shared lib ⚠ - url: remove array.reduce usage ⚠ - test_runner: fix line feed escaping in JUnit ⚠ - test: use `RegExp.escape` to improve test reliability ⚠ - doc: add additional codemods for deprecation ⚠ - test: prefer major GC in cppgc-object teardown ⚠ - test: ensure assertions are reached on more tests ⚠ - test: ensure assertions are reached on more tests ⚠ - test: ensure assertions are reached on more tests ⚠ - test: ensure assertions are reached on more tests ⚠ - tools: add temporal updater ⚠ - test: replace deprecated regex test assertions in http trailers test ⚠ - doc: add fullName property to SuiteContext ⚠ - test: add lint rule to forbid use of `assert.ok(/regex/.test(…))` ⚠ - events: repurpose `events.listenerCount()` to accept EventTargets ⚠ - src: mark unused private field as such ⚠ - src: simply uint32 to string as it must not fail ⚠ - lib: add lint rules for reflective function calls ⚠ - test: ensure assertions are reached on all tests ⚠ - test: fix debug test crashes caused by sea tests ⚠ - doc: mark module.register as active development ⚠ - util: safely inspect getter errors whose message throws ⚠ - node-api: fix data race and use-after-free in napi_threadsafe_function ⚠ - src: handle indexed properties in `process.env` ⚠ - deps: upgrade npm to 11.6.4 ⚠ - doc: fix typos in changelogs ⚠ - doc: correct 'event handle' to 'event handler' in Utf8Stream drop event ⚠ - test: skip failing tests when compiled without amaro ⚠ - doc: update debuglog examples to use 'foo-bar' instead of 'foo' ⚠ - src: use static_cast instead of C-style cast ⚠ - test: fix embedtest in debug windows ⚠ - doc: correct spelling in BUILDING.md ⚠ - doc: replace column with columnNumber in example of `util.getCallSites` ⚠ - deps: update corepack to 0.34.5 ⚠ - test: use `assert.match` for non-literal regexp tests ⚠ - doc: show the use of string expressions in the SQLTagStore example ⚠ - lib,test: fix jsdoc comments ⚠ - test: lint more `assert(regexp.test(...))` cases ⚠ - doc: clarify fileURLToPath security considerations ⚠ - util: improve textencoder encodeInto performance ⚠ - src: handle DER decoding errors from system certificates ⚠ - tools: don't fetch V8 deps in the source tree ⚠ - build: run embedtest with node_g when BUILDTYPE=Debug ⚠ - test: update WPT for WebCryptoAPI to 1e4933113d ⚠ - deps: update zlib to 1.3.1-63d7e16 ⚠ - deps: update sqlite to 3.51.1 ⚠ - deps,src: prepare for cpplint update ⚠ - tools: disable some new cpplint rules before update ⚠ - tools: update cpplint to 2.0.2 ⚠ - tools: refloat 10 Node.js patches to cpplint.py ⚠ - src: fix off-thread cert loading in bundled cert mode ⚠ - test: skip SEA inspect test if inspector is not available ⚠ - tools: update ESLint dependencies ⚠ - tools: remove deprecated ESLint plugins ⚠ - tools: replace deprecated eslint-plugin-markdown ⚠ - doc: add missing `zstd` to mjs example of zlib ⚠ - benchmark: fix incorrect base64 input in byteLength benchmark ⚠ - tools: run tests `--without-amaro` on test-shared macOS ⚠ - stream: fix isErrored/isWritable for WritableStreams ⚠ - tools: enforce trailing commas in `test/sequential` ⚠ - tools: enforce trailing commas in `test/es-module` ⚠ - tools: ignore more paths in GHA CI ⚠ - util: assert getCallSites does not invoke Error.prepareStackTrace ⚠ - meta: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 ⚠ - meta: bump actions/checkout from 5.0.1 to 6.0.0 ⚠ - meta: bump github/codeql-action from 4.31.3 to 4.31.6 ⚠ - meta: bump actions/setup-python from 6.0.0 to 6.1.0 ⚠ - module: allow subpath imports that start with `#/` ⚠ - tools: bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /tools/doc ⚠ - src: implement Windows-1252 encoding support and update related tests ⚠ - http2,zlib: prefer `call()` over `apply()` if argument list is not array ⚠ - test: improve config-file permission test coverage ⚠ - esm: improve error messages for ambiguous module syntax ⚠ - doc: add File modes cross-references in fs methods ⚠ - tools: add some options and comments to `shell.nix` ⚠ - test: skip tests not passing without `NODE_OPTIONS` support ⚠ - deps: V8: cherry-pick 72b0e27bd936 ⚠ - lib: do not provide an empty Proxy from localStorage getter ⚠ - v8: changing total_allocated_bytes to avoid ABI changes ⚠ - increasing node embedder number ✘ Refusing to run CI on potentially unsafe PRhttps://github.com/nodejs/node/actions/runs/21052182155 |
|
This needs a rebase |
bd255c7 to
de5bbb2
Compare
|
Done. Thanks for the ping. |
|
The error seems unrelated to this PR. Could anybody trigger the CI again please? |
As noted by @targos in #60429 (comment), the implementation of
total_allocated_byteschanges the ABI. This PR changes original V8 implementation to a version where there's no addition ofHeapStatistics::total_allocated_bytes_to V8'sHeapStatistics, and instead we get such values usingIsolate::GetTotalAllocatedBytes. This also changes code introduced by #60573 to use this new API on eitherv8.getHeapStatistics()andWorker::GetHeapStatistics. The goal here is to maketotal_allocated_bytesback portable to previous versions, but keeping thev8.getHeapStatistics()API stable once users transition from v25 to future versions. It also solves the ABI change introduced by https://github.com/nodejs/node/pull/60429/filesThere's also a fix on documentation text with missing
.and updating the code snippet to includetotal_allocated_byteson output.