nodejs / build

Better build and test infra for Node.
502 stars 165 forks source link

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

Closed richardlau closed 1 year ago

richardlau commented 1 year ago

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 https://github.com/nodejs/build/issues/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 commented 1 year ago

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 commented 1 year ago
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:

targos commented 1 year ago

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

richardlau commented 1 year ago

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 commented 1 year ago

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.

https://github.com/nodejs/build/pull/3305 installs ninja-build from the Linux distro's package repository.