Apparently since we have upgraded CI to use npm 7, we encounter some cache corruption with Castor (which is really just rsyncing the npm cache and restoring it for the following build). Previous reports: T294426 T293937 and T295341.
The fix is to find the MW_CASTOR_NAMESPACE variable in the build output and delete the directory on integration-castor03 under /srv/jenkins-workspace/caches/.
For the last occurrence in T295341, I kept a copy of the faulty cache:
mv /srv/jenkins-workspace/caches/castor-mw-ext-and-skins/master/quibble-vendor-mysql-php72-selenium-docker \ /srv/corrupted-quibble-vendor-mysql-php72-selenium-docker
Which can be retrieved and investigated locally:
$ mkdir corrupted-npm-cache $ cd corrupted-npm-cache $ rsync -va -zz integration-castor03.integration.eqiad1.wikimedia.cloud:/srv/corrupted-quibble-vendor-mysql-php72-selenium-docker $ cd corrupted-quibble-vendor-mysql-php72-selenium-docker/npm $ npm cache --cache "$(pwd)" verify Cache verified and compressed (~/corrupted-npm-cache/corrupted-quibble-vendor-mysql-php72-selenium-docker/npm/_cacache) Content verified: 0 (0 bytes) Missing content: 6984 Index entries: 0 Finished in 1.613s
The npm, node-gyp have a modify time of Nov 5 17:12. The last change to files seem to be Nov 8 20:41 which I guess is the time a build ended up saving a faulty cache.