-
Notifications
You must be signed in to change notification settings - Fork 101
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
rage-mount: update dependencies fuse_mt, time and zip #324
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've run this locally and confirmed it compiles. However, the update results in a UX regression: while I can use rage-mount
from current main
to mount files fine, when I try to use this branch I get this confusing non-error that causes the mount to fail:
[INFO rage_mount] Mounting as FUSE filesystem
[INFO fuser::session] Mounting tmp/
[WARN fuser::session] Given auto_unmount without allow_root or allow_other; adding allow_other, with userspace permission handling
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Error: Success (os error 0)
[ Did rage not do what you expected? Could an error be more useful? ]
[ Tell us: https://str4d.xyz/rage/report ]
rage/rage/src/bin/rage-mount/main.rs Lines 167 to 171 in 26f99e2
So my guess is that this is related to the migration from the |
Force-pushed to fix formatting errors. |
Codecov Report
@@ Coverage Diff @@
## main #324 +/- ##
==========================================
+ Coverage 37.65% 37.77% +0.11%
==========================================
Files 34 34
Lines 2998 3002 +4
==========================================
+ Hits 1129 1134 +5
+ Misses 1869 1868 -1
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Looks like the UX regression is due to cberner/fuser#122, which I don't entirely understand because I can't find a canonical reference that specifies the requirement of either |
Aha, this is upstream issue libfuse/libfuse#586. Perhaps this worked for libfuse2 but doesn't for libfuse3. I think the fix is to add |
Oh, except that |
Thanks for all the comments. I'm pretty sure |
I'd say we keep note in the README about the behavior and reference it to the upstream issue. It's unlikely to get fixed soon. I don't know how fuser handles stuff, but |
|
I think what I want to do is add
I'm not inclined to provide mount option configurations, in particular because there are options (specifically |
Ugh, this is made more annoying by the fact that the Instead, I'm going to attempt to detect the error and provide a more useful error message. |
I just rebuilt Sorry for the misinformation. |
Once cberner/fuser#218 is merged and released, the "Error: Success" message will be replaced by "Error: Unknown Error" which is an improvement, but still not great. The blocker on handling this error well is libfuse itself exposing sufficient error information: libfuse/libfuse#693 |
This also pins `fuser 0.11.1` which fixes an error message for libfuse2.
We now cleanly unmount the filesystem ourselves on Ctrl-C, instead of relying on FUSE to do this for us. This removes the need for the ambient `MountOptions::AllowOther` capability that `AutoUnmount` requires, while ensuring that `rage-mount` correctly exits if the mountpoint is unmounted externally (e.g. via `umount`).
I figured out how to retain the current behaviour: by using I've tested this locally and it appears to work fine for me. @folliehiyuki can you confirm this works for you? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK
Actually, I'm going to go ahead and merge this, to unblock other PRs. If you encounter any problems, please open new issues. And thank you for the PR! |
I picked the first commit of
fuse_mt
that switched from usingfuse
tofuser
(fuse_mt
hasn't had any new releases since 0.5.1). That wayrage-mount
can be built against libfuse3.time
andzip
dependencies update is a side effect due to TimeSpec being obsolete.WARNING: I've never written any Rust code before, so please bear with my ignorance in the PR.