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

v8-canary builds fails on AIX #287

Closed
targos opened this issue Jul 14, 2024 · 11 comments
Closed

v8-canary builds fails on AIX #287

targos opened this issue Jul 14, 2024 · 11 comments

Comments

@targos
Copy link
Member

targos commented Jul 14, 2024

Seems like it's been happening for some time.

https://ci-release.nodejs.org/computer/release%2Dosuosl%2Daix72%2Dppc64%5Fbe%2D1/builds

@nodejs/platform-aix

Error is:

14:06:55 collect2: error: ld returned 8 exit status
14:06:55 gmake[2]: *** [embedtest.target.mk:292: /home/iojs/build/ws/out/Release/embedtest] Error 1
@richardlau
Copy link
Member

richardlau commented Jul 15, 2024

Access to the release CI is restricted to releasers and build infra.
Trying to recreate (the canary branch from this nodejs/node-v8 repository) on the test CI which is publicly visible: https://ci.nodejs.org/job/node-test-commit-aix/52506/nodes=aix72-ppc64/console

@targos
Copy link
Member Author

targos commented Jul 16, 2024

Public repro failed the same way.

@targos
Copy link
Member Author

targos commented Jul 17, 2024

This also affects V8 12.7: nodejs/node#53651

@richardlau
Copy link
Member

My suspicion is that we're running out of memory (like we have done on V8 updates on other platforms).
I'm going to try experimenting with lower parallelism (via changing the JOBS environment variable) and/or investigate swap (Adoptium have an Ansible AIX enable_swap role that we can reference).

@richardlau
Copy link
Member

https://ci.nodejs.org/job/richardlau-node-test-commit-aix/58/nodes=aix72-ppc64/console attempted to run for canary from nodejs/node-v8 with -j 2 but still failed

17:38:33 collect2: error: ld returned 8 exit status
17:38:33 gmake[2]: *** [cctest.target.mk:332: /home/iojs/build/workspace/richardlau-node-test-commit-aix/nodes/aix72-ppc64/out/Release/cctest] Error 1
17:38:33 gmake[2]: *** Waiting for unfinished jobs....

@targos
Copy link
Member Author

targos commented Jul 17, 2024

I just found nodejs/node#14080
Maybe this -bnoquiet option can help?

@richardlau
Copy link
Member

huh. So with -bnoquiet enabled and the V8 12.7 update PR there are a lot of warnings re. exported symbols (I don't know (yet) if we'd get similar warnings with the working builds) and an error about an undefined symbol in abseil:

18:07:23 EXPORTS: Symbols exported: 102499
18:07:23 (ld): resolve
18:07:23 RESOLVE: 259367 of 538690 symbols were kept.
18:07:23 (ld): addgl /usr/lib/glinkl64.o
18:07:23 ADDGL: Glink code added for 461 symbols.
18:07:23 (ld): er full
18:07:23 ld: 0711-319 WARNING: Exported symbol not defined: T_FileStream_close
...
18:07:23 ld: 0711-319 WARNING: Exported symbol not defined: writePackageDatFile
18:07:23 ld: 0711-318 ERROR: Undefined symbols were found.
18:07:23 	The following symbols are in error:
18:07:23  Symbol                    Inpndx  TY CL Source-File(Object-File) OR Import-File{Shared-object}
18:07:23                               RLD: Address  Section  Rld-type Referencing Symbol
18:07:23  ----------------------------------------------------------------------------------------------
18:07:23  ._ZN4absl18debugging_internal26DemangleRustSymbolEncodingEPKcPcm [4]     ER PR ../deps/v8/third_party/abseil-cpp/absl/debugging/internal/demangle.cc(/home/iojs/build/workspace/richardlau-node-test-commit-aix/nodes/aix72-ppc64/out/Release/obj.target/tools/v8_gypfiles/libv8_abseil.a[demangle.o])
18:07:23                                    0000a7a8 .text    R_RBR    [168]   ._ZN4absl18debugging_internal8DemangleEPKcPcm
18:07:23 ER: The return code is 8.
18:07:23 collect2: error: ld returned 8 exit status

@richardlau
Copy link
Member

richardlau commented Jul 18, 2024

It looks like this is referring to third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc from V8 which looks to be a new file in V8 12.7.

I've updated our v8.gyp file to add changes found by

$ git diff-tree --no-commit-id --name-status 0ec8f7eea3 -r | grep '^[AD].*abseil.*'
A       deps/v8/third_party/abseil-cpp/absl/container/hash_container_defaults.h
A       deps/v8/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc
A       deps/v8/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h
A       deps/v8/third_party/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc
A       deps/v8/third_party/abseil-cpp/absl/random/internal/mock_validators.h
A       deps/v8/third_party/abseil-cpp/absl/status/internal/status_matchers.cc
A       deps/v8/third_party/abseil-cpp/absl/status/internal/status_matchers.h
A       deps/v8/third_party/abseil-cpp/absl/status/status_matchers.h
A       deps/v8/third_party/abseil-cpp/absl/status/status_matchers_test.cc
$

and retrying with -bnoquiet: https://ci.nodejs.org/job/richardlau-node-test-commit-aix/62/nodes=aix72-ppc64/console

(Update: removed status as was failing:

19:05:45 In file included from ../deps/v8/third_party/abseil-cpp/absl/status/internal/status_matchers.cc:19:
19:05:45 ../deps/v8/third_party/abseil-cpp/absl/status/internal/status_matchers.h:23:10: fatal error: gmock/gmock.h: No such file or directory
19:05:45    23 | #include "gmock/gmock.h"  // gmock_for_status_matchers.h
19:05:45       |          ^~~~~~~~~~~~~~~
19:05:45 compilation terminated.

)

@richardlau
Copy link
Member

and retrying with -bnoquiet: https://ci.nodejs.org/job/richardlau-node-test-commit-aix/62/nodes=aix72-ppc64/console

Succeeded! 🎉. I've pushed a commit to nodejs/node#53651.

@targos
Copy link
Member Author

targos commented Jul 18, 2024

Nice, thanks!

@targos
Copy link
Member Author

targos commented Jul 28, 2024

Patch adapted and pushed to canary-base.

@targos targos closed this as completed Jul 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants