deps: V8: cherry-pick 0f024d4e66e0#62408
Conversation
|
Review requested:
|
|
Is this ABI-compatible? |
This is ABI compatible since the commit adds a new field |
|
My understanding of structs is that adding fields cannot be ABI-compatible because it changes the size of the object. @nodejs/cpp-reviewers |
|
Yes the struct size does matter for ABI compatibility. But |
|
Our V8 header and all the symbols are exposed, so regardless of whether Node.js uses them internally, user land addons can already rely on them (and I think there are probably a long tail of addons or libraries that do, e.g. #61102, note that we don't use the default platform internally) |
|
That's clear! I understand now how backporting in a patch release could break addons. |
|
Keep this PR open until #61898 is merged, then ask the release team to land it in v26. |
2806f85 to
83e86e3
Compare
|
The CI seems very flaky and the V8 CI is green. Is anyone against landing this as is manually? |
I looked at CI failures, and most of them seem flaky indeed. I'm just not sure about https://ci.nodejs.org/job/node-test-commit-arm-debug/23124/#showFailuresLink - I'd defer to @joyeecheung or someone else more experienced with this group of tests. |
|
@RafaelGSS those were green in a former run: https://ci.nodejs.org/job/node-test-commit-arm-debug/23142/ |
|
Linux contained was green before https://ci.nodejs.org/job/node-test-commit-linux-containered/56015/ |
Original commit message:
[heap profiler] Add is_live field to AllocationProfile::Sample
When using kSamplingIncludeObjectsCollectedByMajorGC/MinorGC flag, samples for collected objects are retained but callers had no way to distinguish live from dead objects.
Add is_live to expose this information.
Change-Id: I2e930644348ff942caa4b192a127c5baa05bbfef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7603535
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#105698}
Refs: v8/v8@0f024d4
Signed-off-by: ishabi <ilyasshabi94@gmail.com>
PR-URL: #62408
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
|
Landed in 8385efc |
|
From the reliability reports it seems the flakes only started to appear in the report from April 28 nodejs/reliability#1524 but not on 27 nodejs/reliability#1523 and it's limited to arm64 containers. It's likely either a regression in the code or in the build. From the code it's not obvious to me which one can trigger it. @nodejs/build any recent changes to the arm64 containers? |
Not within the last three weeks (azure)/two weeks (osuosl) (according to |
|
According to the April 28 reliability report nodejs/reliability#1524, the arm64 failures started before this PR’s CI run it was around 72902 / 72903 |
Original commit message:
Refs: v8/v8@0f024d4
Motivation and changes
Continues the heap profiler improvements started in #62201 and #62273.
V8's
StartSamplingHeapProfileraccepts GC flags that retain samples even after the objects are GC'd. However, there was no way to distinguish whether a sampled allocation was still alive or had already been freed.With this commit, we can:
As a follow-up,
SerializeHeapProfilewill be updated to include per-node freed object size based onis_livefield from GetSamples().