Skip to content
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

[v10.x] V8 builds are broken #35504

Closed
richardlau opened this issue Oct 5, 2020 · 8 comments
Closed

[v10.x] V8 builds are broken #35504

richardlau opened this issue Oct 5, 2020 · 8 comments
Labels
build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency.

Comments

@richardlau
Copy link
Member

  • Version: v10.x
  • Platform: Linux ppcle & s390x
  • Subsystem: V8/build

What steps will reproduce the bug?

The V8 CI (https://ci.nodejs.org/job/node-test-commit-v8-linux/) is currently broken on v10.x (see #35393 (comment)).

How often does it reproduce? Is there a required condition?

All the time.

What is the expected behavior?

V8 CI should pass.

What do you see instead?

V8 CI consistently fails on all three platforms.

11:04:17 + python tools/test.py -j 88 -p tap --mode=release --flaky-tests=run v8-updates
11:04:17 TAP version 13
11:04:17 1..2
11:04:18 ok 1 v8-updates/test-postmortem-metadata
11:04:18   ---
11:04:18   duration_ms: 0.713
11:04:18   ...
11:04:21 not ok 2 v8-updates/test-linux-perf
11:04:21   ---
11:04:21   duration_ms: 3.916
11:04:21   severity: fail
11:04:21   exitcode: 1
11:04:21   stack: |-
11:04:21     assert.js:339
11:04:21         throw err;
11:04:21         ^
11:04:21     
11:04:21     AssertionError [ERR_ASSERTION]: Couldn't find interpreted functionOne()
11:04:21         at Object.<anonymous> (/home/iojs/build/workspace/node-test-commit-v8-linux/nodes/benchmark-ubuntu1604-intel-64/v8test/v8test/test/v8-updates/test-linux-perf.js:74:8)
11:04:21         at Module._compile (internal/modules/cjs/loader.js:778:30)
11:04:21         at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
11:04:21         at Module.load (internal/modules/cjs/loader.js:653:32)
11:04:21         at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
11:04:21         at Function.Module._load (internal/modules/cjs/loader.js:585:3)
11:04:21         at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
11:04:21         at startup (internal/bootstrap/node.js:283:19)
11:04:21         at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
11:04:21   ...
  • Compilation failures on ppcle and s390x. cc @nodejs/platform-ppc @nodejs/platform-s390.
10:32:35 ../../src/heap/mark-compact.cc: In instantiation of ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(class v8::internal::MaybeObject**)>’:
10:32:35 ../../src/heap/mark-compact.cc:2861:58:   required from ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]’
10:32:35 ../../src/heap/mark-compact.cc:2860:20:   required from ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MinorNonAtomicMarkingState]::<lambda(enum v8::internal::SlotType, v8::internal::Address, v8::internal::Address)>’
10:32:35 ../../src/heap/mark-compact.cc:2859:46:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MinorNonAtomicMarkingState]’
10:32:35 ../../src/heap/mark-compact.cc:2770:24:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::Process() [with MarkingState = v8::internal::MinorNonAtomicMarkingState]’
10:32:35 ../../src/heap/mark-compact.cc:4315:1:   required from here
10:32:35 ../../src/heap/mark-compact.cc:2862:39: error: ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>’ declared with greater visibility than the type of its field ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>::<this capture>’ [-Werror=attributes]
10:32:35                  slot_type, slot, [this](MaybeObject** slot) {
10:32:35                                        ^
10:32:35 ../../src/heap/mark-compact.cc: In instantiation of ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(class v8::internal::MaybeObject**)>’:
10:32:35 ../../src/heap/mark-compact.cc:2861:58:   required from ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]’
10:32:35 ../../src/heap/mark-compact.cc:2860:20:   required from ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MajorNonAtomicMarkingState]::<lambda(enum v8::internal::SlotType, v8::internal::Address, v8::internal::Address)>’
10:32:35 ../../src/heap/mark-compact.cc:2859:46:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MajorNonAtomicMarkingState]’
10:32:35 ../../src/heap/mark-compact.cc:2770:24:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::Process() [with MarkingState = v8::internal::MajorNonAtomicMarkingState]’
10:32:35 ../../src/heap/mark-compact.cc:4315:1:   required from here
10:32:35 ../../src/heap/mark-compact.cc:2862:39: error: ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>’ declared with greater visibility than the type of its field ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>::<this capture>’ [-Werror=attributes]
10:32:35 cc1plus: all warnings being treated as errors

Additional information

Going to try bisecting v10.x releases.

@richardlau richardlau added build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency. v10.x labels Oct 5, 2020
@richardlau
Copy link
Member Author

v10.0.0 to v10.11.0 fail due to configure not supporting --verbose:
https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=rhel7-s390x,v8test=v8test/3432/console

10:52:58 + ./configure --verbose
10:52:58 Usage: configure [options]
10:52:58 
10:52:58 configure: error: no such option: --verbose
10:52:58 Build step 'Execute shell' marked build as failure

v10.12.0 through to v10.15.0 fails with
https://ci.nodejs.org/job/node-test-commit-v8-linux/3436/nodes=rhel7-s390x,v8test=v8test/console

11:34:47 usage: v8gen.py [-h] {list,gen} ...
11:34:47 v8gen.py: error: unrecognized arguments: i18nsupport=off
11:34:47 Unknown architecture (s390x) -- unable to run ninja.
11:34:47 No prebuilt ninja binary was found for this system.

v10.15.1 and later fail with compilation error we're currently seeing:
https://ci.nodejs.org/job/node-test-commit-v8-linux/3438/nodes=rhel7-s390x,v8test=v8test/console

11:53:12 ../../src/heap/mark-compact.cc: In instantiation of ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(class v8::internal::MaybeObject**)>’:
11:53:12 ../../src/heap/mark-compact.cc:2861:58:   required from ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]’
11:53:12 ../../src/heap/mark-compact.cc:2860:20:   required from ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MinorNonAtomicMarkingState]::<lambda(enum v8::internal::SlotType, v8::internal::Address, v8::internal::Address)>’
11:53:12 ../../src/heap/mark-compact.cc:2859:46:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MinorNonAtomicMarkingState]’
11:53:12 ../../src/heap/mark-compact.cc:2770:24:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::Process() [with MarkingState = v8::internal::MinorNonAtomicMarkingState]’
11:53:12 ../../src/heap/mark-compact.cc:4315:1:   required from here
11:53:12 ../../src/heap/mark-compact.cc:2862:39: error: ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>’ declared with greater visibility than the type of its field ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MinorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>::<this capture>’ [-Werror=attributes]
11:53:12                  slot_type, slot, [this](MaybeObject** slot) {
11:53:12                                        ^
11:53:12 ../../src/heap/mark-compact.cc: In instantiation of ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(class v8::internal::MaybeObject**)>’:
11:53:12 ../../src/heap/mark-compact.cc:2861:58:   required from ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]’
11:53:12 ../../src/heap/mark-compact.cc:2860:20:   required from ‘struct v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MajorNonAtomicMarkingState]::<lambda(enum v8::internal::SlotType, v8::internal::Address, v8::internal::Address)>’
11:53:12 ../../src/heap/mark-compact.cc:2859:46:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers() [with MarkingState = v8::internal::MajorNonAtomicMarkingState]’
11:53:12 ../../src/heap/mark-compact.cc:2770:24:   required from ‘void v8::internal::RememberedSetUpdatingItem<MarkingState>::Process() [with MarkingState = v8::internal::MajorNonAtomicMarkingState]’
11:53:12 ../../src/heap/mark-compact.cc:4315:1:   required from here
11:53:12 ../../src/heap/mark-compact.cc:2862:39: error: ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>’ declared with greater visibility than the type of its field ‘v8::internal::RememberedSetUpdatingItem<MarkingState>::UpdateTypedPointers()::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with MarkingState = v8::internal::MajorNonAtomicMarkingState; v8::internal::Address = long unsigned int]::<lambda(v8::internal::MaybeObject**)>::<this capture>’ [-Werror=attributes]
11:53:12 cc1plus: all warnings being treated as errors

@richardlau
Copy link
Member Author

I'm assuming that we did have the V8 CI passing on v10.x at some point in the past. In terms of why it's failing now, one or more of the following may be responsible:

@miladfarca
Copy link
Contributor

Try adding v8_enable_backtrace = true to your gn arguments list, otherwise gcc will add -fvisibility=hidden to its arguments which is causing the failures.

@richardlau
Copy link
Member Author

richardlau commented Oct 5, 2020

Thanks, I'll try cherry-picking #32113 across to v10.x-staging 🤞.
Test build: https://ci.nodejs.org/job/node-test-commit-v8-linux/3441/

@richardlau
Copy link
Member Author

Test build passed on the IBM platforms with that cherry-pick 🎉.

Test failures on x64 Linux would require the nearform machine to be brought back online to test.

@richardlau
Copy link
Member Author

nearform machines are back. Will attempt to cherry-pick #27364 to see if that fixes things.

@richardlau
Copy link
Member Author

richardlau commented Oct 9, 2020

Cherry-picked 3b2633e and 546d6cd across to v10.x-staging.

Test V8-CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/3456/

@richardlau
Copy link
Member Author

Cherry picking the test changes gives us a green CI on v10.x-staging 🎉.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

No branches or pull requests

2 participants