Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unix: disable io_uring close on selected kernels #4141

Merged

Conversation

santigimeno
Copy link
Member

Specifically on non-longterm kernels between 5.16.0 (non-longterm) and 6.1.0 (longterm). Starting with longterm 6.1.0, the issue is solved.

Specifically on non-longterm kernels between 5.16.0 (non-longterm) and
6.1.0 (longterm). Starting with longterm 6.1.0, the issue is solved.
@santigimeno santigimeno force-pushed the santi/io_uring_kernel_version_check branch from f117c93 to a43dc1a Compare September 17, 2023 19:19
src/unix/linux.c Outdated Show resolved Hide resolved
Co-authored-by: Ben Noordhuis <[email protected]>
@merceyz
Copy link

merceyz commented Sep 26, 2023

Starting with longterm 6.1.0, the issue is solved.

Seems like the issue is present in 6.2 as well ref yarnpkg/berry#5754 (comment).

@santigimeno
Copy link
Member Author

@merceyz thanks for the report. I just tested in 6.2.0 by running this basic test with the node:20.3.0-bullseye image and couldn't reproduce the issue. Could you provide more info on how to reproduce the error?

@santigimeno
Copy link
Member Author

@merceyz one more thing. I think that kernel version you're using is from Ubuntu, right? If so, can you provide the output of

$ cat /proc/version_signature

Thanks!

@merceyz
Copy link

merceyz commented Oct 1, 2023

I should have tested more before commenting on this PR, I tested with UV_USE_IO_URING=0 and it still happens so probably not io_uring+libuv related, sorry about that.


It's happening on a GitHub Actions Ubuntu 22.04 runner and there has been a new release since I left that comment so I can only fetch it from that:

$ cat /proc/version_signature
Ubuntu 6.2.0-1012.12~22.04.1-azure 6.2.16

I don't have a reduced test case yet but here is a link to the source tree and a failed run:
https://github.com/yarnpkg/berry/tree/56eb7fa3eb2e7d85fe07cb4de6382a9c5bd460a0
https://github.com/yarnpkg/berry/actions/runs/6372578947/job/17295495546#step:5:362

I tested with the test case you linked to but it works fine.

stefreak added a commit to garden-io/garden that referenced this pull request Nov 9, 2023
Libuv 1.45.0 is affected by a kernel bug on certain kernels (Ubuntu 22)
This leads to errors where Garden tool downloading errors with ETXTBSY
Apparently file descriptor accounting is broken when using USE_IO_URING on older kernels

See also libuv/libuv#4141
github-merge-queue bot pushed a commit to garden-io/garden that referenced this pull request Nov 9, 2023
* chore: bump to node 21.1.0

* chore: fix linter complaint

* chore: use new npm modules cache

* fix: ts-node/esm module loader

* fix: try to see if an explicit import hook register works to fix ts-node esm performance

* chore: fix shebang lines

* fix: install nodejs using fnm (if needed)

* fix: checksum

* fix: use getAbi correctly

* chore: test nodejs version as separate step

* fix: make nodejs install work with machine executor

* chore: update node-pty-prebuilt-multiarch to 0.11.10

Apparently the NPM package name changed; I opened an issue upstream to clarify
because the github repo still links to the old NPM repo.

homebridge/node-pty-prebuilt-multiarch#31

* chore: bump typescript types and eslint packages

* chore: make no-explicit-any a warning only

* fix: consistent versions for node-pty-multiarch

* fix: alpine docker sha hash

* fix: clean up unwanted log messages in the release binary

* fix: musl checksum

* fix: avoid issues due to cache poisoning

* fix: wait until write stream is finished

Co-authored-by: Tim Beyer <[email protected]>

* fix: use pipeline to await until write stream really finished

* fix: properly implement streaming

* chore: update circleci machine image

* fix: add env var UV_USE_IO_URING=0 to avoid kernel bug

Libuv 1.45.0 is affected by a kernel bug on certain kernels (Ubuntu 22)
This leads to errors where Garden tool downloading errors with ETXTBSY
Apparently file descriptor accounting is broken when using USE_IO_URING on older kernels

See also libuv/libuv#4141

* fix: tested error message became more detailed

---------

Co-authored-by: Steffen Neubauer <[email protected]>
Co-authored-by: Tim Beyer <[email protected]>
Co-authored-by: Garden CI <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants