From: Jens Axboe <[email protected]>
To: Andrew Udvare <[email protected]>, [email protected]
Cc: io-uring <[email protected]>
Subject: Re: [REGRESSION] ETXTBSY when running Yarn (Node) since af5d68f
Date: Tue, 21 May 2024 10:16:25 -0600 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
(removing stable as this isn't a stable regression, and the commit
itself isn't marked for stable to begin with).
On 5/21/24 10:02 AM, Andrew Udvare wrote:
> #regzbot introduced: v6.8..v6.9-rc1
>
> 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 [email protected]: "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
This looks like a timing alteration due to task_work being done
differently, from a quick look and guess. For some reason SQPOLL is
being used. I tried running it here, but it doesn't reproduce for me.
Tried both current -git and 6.9 as released. I'll try on x86 as well to
see if I can hit it.
Maybe someone can describe what is happening here? I'm assuming that
something is racing with an io_uring operation done by SQPOLL, which is
keeping the file open until done.
This may or may not be a kernel issue, depending on what assumptions are
being made on when operations are begun and completed. Maybe those
assumptions are correct and there is indeed a kernel regression here, or
maybe the user side is just buggy in its assumptions.
--
Jens Axboe
next parent reply other threads:[~2024-05-21 16:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <[email protected]>
2024-05-21 16:16 ` Jens Axboe [this message]
2024-05-21 16:22 ` [REGRESSION] ETXTBSY when running Yarn (Node) since af5d68f Jens Axboe
2024-05-21 18:17 ` Christian Heusel
2024-05-21 18:25 ` Jens Axboe
2024-05-21 18:29 ` Jens Axboe
2024-05-21 19:05 ` Jens Axboe
2024-05-21 19:07 ` Christian Heusel
2024-05-21 19:11 ` Jens Axboe
2024-05-21 19:30 ` Andrew Udvare
2024-05-21 19:32 ` Jens Axboe
2024-05-21 19:33 ` Andrew Udvare
2024-05-21 19:36 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox