Description
Since the npm 7.4.2 update landed in Node.js (nodejs/node#36953) the citgm-smoker
job has been failing on test-ibm-rhel7-s390x-2
with error:
error: failure | not found: npm
The citgm-smoker
job:
- Builds Node.js
- Installs the built Node.js into a clean (i.e. removed beforehand)
smoker
directory - Runs
npm install --prefix=/home/iojs/build/workspace/citgm-smoker/nodes/rhel7-s390x/smoker --global --loglevel=error citgm
to install citgm - Runs
citgm-all -J
Further investigation shows that although the symlinks for npm are in smoker/bin
the targets are not there:
[iojs@test-ibm-rhel7-s390x-2 smoker]$ ls -al
total 40
drwxr-xr-x 6 iojs iojs 4096 Jan 19 09:52 .
drwxr-xr-x 5 iojs iojs 4096 Jan 19 09:52 ..
drwxr-xr-x 2 iojs iojs 4096 Jan 19 09:52 bin
drwxr-xr-x 3 iojs iojs 4096 Jan 19 09:52 include
drwxr-xr-x 3 iojs iojs 4096 Jan 19 09:52 lib
-rw-r--r-- 1 iojs iojs 14690 Jan 19 09:52 report.xml
drwxr-xr-x 5 iojs iojs 4096 Jan 19 09:52 share
[iojs@test-ibm-rhel7-s390x-2 smoker]$ ls -al bin/
total 76664
drwxr-xr-x 2 iojs iojs 4096 Jan 19 09:52 .
drwxr-xr-x 6 iojs iojs 4096 Jan 19 09:52 ..
lrwxrwxrwx 1 iojs iojs 38 Jan 19 09:52 citgm -> ../lib/node_modules/citgm/bin/citgm.js
lrwxrwxrwx 1 iojs iojs 42 Jan 19 09:52 citgm-all -> ../lib/node_modules/citgm/bin/citgm-all.js
-rwxr-xr-x 1 iojs iojs 78492160 Jan 19 09:52 node
lrwxrwxrwx 1 iojs iojs 38 Jan 19 09:52 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx 1 iojs iojs 38 Jan 19 09:52 npx -> ../lib/node_modules/npm/bin/npx-cli.js
[iojs@test-ibm-rhel7-s390x-2 smoker]$ ls -al lib/node_modules/
total 16
drwxr-xr-x 4 iojs iojs 4096 Jan 19 09:52 .
drwxr-xr-x 3 iojs iojs 4096 Jan 19 09:52 ..
drwxr-xr-x 2 iojs iojs 4096 Jan 19 09:52 .bin
drwxr-xr-x 5 iojs iojs 4096 Jan 19 09:52 citgm
[iojs@test-ibm-rhel7-s390x-2 smoker]$
In fact the entire npm
directory is missing from smoker/lib/node_modules
. A look at the logs suggests npm has unexpectedly removed a lot of packages at the install citgm step:
e.g. https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2574/nodes=rhel7-s390x/console
14:52:40 + npm install --prefix=/home/iojs/build/workspace/citgm-smoker/nodes/rhel7-s390x/smoker --global --loglevel=error citgm
14:52:40
14:52:48 added 209 packages, removed 251 packages, and audited 210 packages in 8s
14:52:48
14:52:48 15 packages are looking for funding
14:52:48 run `npm fund` for details
14:52:48
14:52:48 found 0 vulnerabilities
Further investigation has revealed:
- Wiping out the workspace (effectively wiping the npm cache) and rebuilding has no effect (failure still persists).
- The failure is only observed on
test-ibm-rhel7-s390x-2
. It doesn't occur ontest-ibm-rhel7-s390x-1
,test-ibm-rhel7-s390x-4
or any of the other platforms. - The failure doesn't occur on
test-ibm-rhel7-s390x-2
when building the commit (nodejs/node@f8ab632) immediately prior to the npm 7.4.2 update: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2582/nodes=rhel7-s390x/
Only occurring on test-ibm-rhel7-s390x-2
would suggest perhaps a machine specific issue but so far I've not been able to find an obvious difference between it and the other non-affected machines. As the problem only occurs on commits after the npm 7.4.2 update it could also be a regression in npm, but we're not seeing the problem elsewhere.
I'm going to take test-ibm-rhel7-s390x-2
offline temporarily.
cc @nodejs/releasers @nodejs/npm