BUG: ETXTBSY when running Yarn (Node) since af5d68f

From: Andrew Udvare
Date: Tue May 21 2024 - 11:54:53 EST


https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=af5d68f8892f8ee8f137648b79ceb2abc153a19b

Since the above commit present in 6.9+, Node running a Yarn installation that executes a subprocess always shows the following:

/test # yarn --offline install
yarn install v1.22.22
warning package.json: "test" is also the name of a node core module
warning test@1.0.0: "test" is also the name of a node core module
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
error /test/node_modules/snyk: Command failed.
Exit code: 126
Command: node wrapper_dist/bootstrap.js exec
Arguments:
Directory: /test/node_modules/snyk
Output:
/bin/sh: node: Text file busy

The commit was found by bisection with a simple initramfs that just runs 'yarn --offline install' with a test project and cached Yarn packages.

To reproduce:

npm install -g yarn
mkdir test
cd test
cat > package.json <<EOF
{
"name": "test",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"snyk": "^1.1291.0"
}
}
EOF
yarn install

Modern Yarn will give the same result but with slightly different output.

This also appears to affect node-gyp: https://github.com/nodejs/node/issues/53051

See also: https://bugs.gentoo.org/931942

--
Andrew

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature