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
-
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