rage-mount: update dependencies fuse_mt, time and zip#324
Conversation
str4d
left a comment
There was a problem hiding this comment.
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? |
|
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_mtthat switched from usingfusetofuser(fuse_mthasn't had any new releases since 0.5.1). That wayrage-mountcan be built against libfuse3.timeandzipdependencies 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.