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

node-test-commit-v8-linux fails to find ninja on x64 #3206

Closed
richardlau opened this issue Feb 24, 2023 · 5 comments · Fixed by #3305
Closed

node-test-commit-v8-linux fails to find ninja on x64 #3206

richardlau opened this issue Feb 24, 2023 · 5 comments · Fixed by #3305

Comments

@richardlau
Copy link
Member

https://ci.nodejs.org/job/node-test-commit-v8-linux/ has been failing for some time on the Intel benchmark machine, https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=benchmark-ubuntu1804-intel-64,v8test=v8test/buildTimeTrend

While a lot of the failures are #3050, some builds, e.g. https://ci.nodejs.org/job/node-test-commit-v8-linux/5191/nodes=benchmark-ubuntu1804-intel-64,v8test=v8test/console manage to pull down deps but then error:

10:32:11 depot_tools/ninja.py: Could not find Ninja in the third_party of the current project, nor in your PATH.
10:32:11 Please take a following action to install Ninja.
10:32:11 - If your project has DEPS, Add a CIPD Ninja dependency to DEPS.
10:32:11 - Oterweise, Add Ninja to your PATH *after* depot_tools.
10:32:11 Makefile:303: recipe for target 'v8' failed

This is odd -- my understanding was that for x64 ninja came from Google's depot_tools/cipd.

It looks like the last successful V8 CI on the benchmark machine was 29 days ago: https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=benchmark-ubuntu1804-intel-64,v8test=v8test/5137/

cc @nodejs/v8-update

@richardlau
Copy link
Member Author

My guess is that it's related to the removal of ninja binaries from depot_tools at the end of January 2023:

What do I need to do?

We have already added the ninja CIPD package to all known projects with DEPS. Running gclient sync is all you have to do in that case.

V8's DEPS in Node.js does contain a cipd entry for ninja 🤷 :
https://github.com/nodejs/node/blob/86362b7877cab3d8385521a3c9dabffe4f6f0a9b/deps/v8/DEPS#L247-L256

@richardlau
Copy link
Member Author

10:32:11 - Oterweise, Add Ninja to your PATH *after* depot_tools.

One option, if we're okay using our own ninja binaries instead of Google's on x64, might be to use the https://github.com/nodejs/build/tree/main/ansible/roles/ninja role, which compiles the ninja binary that we're using for ppc64le and s390x, on x64. That would involve, at least:

  • Removing the when clause, or extending it to include x64, from
    - role: ninja
    when: arch == 'ppc64' or arch == 's390x'
    vars:
    ninja_dest_dir: "{{ tools_dest_dir }}"
    ninja_git_dir: "{{ tools_git_dir }}/ninja"
    ninja_user: "{{ tools_user }}"
  • Editing the job to add /home/iojs/build-tools to the PATH. Currently on ppc64le and s390x that's done in tools/make-v8.sh but I think that should really be done in the job (if a user runs tools/make-v8.sh on their own system they are highly unlikely to have /home/iojs/build-tools). Also setting it in the job means we won't have to update tools/make-v8.sh in every supported release line.

@targos
Copy link
Member

targos commented Apr 10, 2023

Shouldn't we just install ninja from ubuntu's repo?

@richardlau
Copy link
Member Author

Shouldn't we just install ninja from ubuntu's repo?

That's an option too. I don't think we've hit compatibility issues with ninja like we have with gn.

@richardlau
Copy link
Member Author

Shouldn't we just install ninja from ubuntu's repo?

That's an option too. I don't think we've hit compatibility issues with ninja like we have with gn.

#3305 installs ninja-build from the Linux distro's package repository.

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

Successfully merging a pull request may close this issue.

2 participants