Replies: 4 comments 2 replies
-
2.1.3 fixed it. |
Beta Was this translation helpful? Give feedback.
0 replies
-
Great, thanks! That upgrade shouldn't be too risky I guess.
Now ... I wrote an overloaded sendfile(2) function that has a fallback in case of EAGAIN, which helps working around the issue in a little test utility but not in applications like the rustup installer or Chrome/ium (which fails to move downloaded extensions into place with an EAGAIN error). Are there other syscalls that fail like sendfile()?
|
Beta Was this translation helpful? Give feedback.
1 reply
-
That's be a sort of reverse spelunking, because it's nearly impossible to find out what calls those applications make that fail...
In Chromium's case the version of the failing function (base::Move()) in the current HEAD uses rename(2) ... which cannot raise EAGAIN according to my documentation, so go figure...
|
Beta Was this translation helpful? Give feedback.
1 reply
-
Or, there is a similar issue with the `copy_file_range` syscall. It seems that's what the failing rust file copy implementation uses on Linux.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I'm (still) running ZFS 2.1.2 (as root) on an older system that I usually boot under kernel 4.14.23 .
I'm seeing more and more error 11 (EAGAIN, resource temporarily unavailable) when applications try to move downloaded files from a temp. to their target destination and I wonder if this is in fact the same issue discussed in #12971 that was (apparently) fixed in a later 2.1.x release (which one?).
This is clearly related to the target being on a ZFS pool or even to the source being on a pool. This seems to vary; I've had the rustup installer (downloaded by the interface script as
/tmp/rustup-init
, which moves itself to the target location) fail with "OS error 11" if the target is on a pool but not if it's on another FS. I checked, and rust indeed seems to use sendfile for this kind of operation, so I wrote a cli interface aroundsendfile(2)
. This fails with EAGAIN regardless of the destination when the source is on a pool.I build and install ZFS through dpkg and a PPA, which has become trickier than it used to be and given the risk of locking myself out of my system I try not to update without good reason.
Beta Was this translation helpful? Give feedback.
All reactions