Solved [13.1-BETA] Rclone does not mount remote webdav folder

Hi folks,

I am not sure if this is a bug related with RCLONE or 13.1-BETA, but the former doesn't mount the webdav resouces locally anymore.

So far I uninstalled and reinstalled RCLONE and redone the procedure a bunch of time, but I could not mount this remote resource.

This command has always worked before upgrading to 13.1-BETA:
rclone mount dav: /mnt/drive --vfs-cache-mode writes --daemon

Where dav: is the local config file:
Code:
[dav]
type = webdav
url = https://dav.mailbox.org/servlet/webdav.infostore/
vendor = other
user = freezr@mailbox.org
pass = wjnqenSDASJDNewdqow2312nnJljNDQWwqw2

And this is the output:
Code:
2022/03/14 02:51:23 DEBUG : rclone: Version "v1.57.0-DEV" starting with parameters ["rclone" "mount" "dav:" "/mnt/drive" "--vfs-cache-mode" "writes" "--daemon" "-vv"]
2022/03/14 02:51:23 DEBUG : Creating backend with remote "dav:"
2022/03/14 02:51:23 DEBUG : Using config file from "/home/freezr/.config/rclone/rclone.conf"
2022/03/14 02:51:23 DEBUG : found headers:
2022/03/14 02:51:28 DEBUG : rclone: Version "v1.57.0-DEV" finishing with parameters ["/usr/local/bin/rclone" "mount" "dav:" "/mnt/drive" "--vfs-cache-mode" "writes" "--daemon" "-vv"]

But the local folder is empty, hence the connection has not been established however running this other command:
rclone lsd dav:
Code:
          -1 2019-02-05 01:04:53        -1 Public infostore
          -1 2021-07-14 21:19:38        -1 Trash
          -1 2019-02-05 01:04:53        -1 Userstore

The webdav resource is properly connected therefore I assume the issue is between Rclone and FreeBSD.

Code:
rclone --version                           
rclone v1.57.0-DEV
- os/version: freebsd 13.1-beta1 (64 bit)
- os/kernel: 13.1-beta1 (amd64)
- os/type: freebsd
- os/arch: amd64
- go/version: go1.17.3
- go/linking: dynamic
- go/tags: none

freebsd-version -k                             
13.1-BETA1

uname -a                                       
FreeBSD dad-bsd 13.1-BETA1 FreeBSD 13.1-BETA1 #0 releng/13.1-n249974-ad329796bdb: Thu Mar 10 02:30:25 UTC 2022     root@releng3.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64

Thanks in advance!

freezr
 
Last edited:
covacat

Actually it requires FUSE but it seems to work properly since I was able to mount the webdav resource with Thunar (through FUSE), the problem is I need access to this resource with a Terminal and when webdav is mounted through Thunar I can't.

I think it is a bug and if I can isolate and reproduce it I can open a bug report.
 
The other system has the same issue, I need to open a bur report since having this working is extremely important to me.

Should it be under:

Report an update or defect to a port

or under

Report an issue with the base system

???
 
... doesn't mount the webdav resouces locally anymore.
I understand that „doesn’t ... anymore“ means, that it did work for you in the past. Please can you elaborate a little bit what have changed since.

In case it was a system update, for example from 13.0-RELEASE to 13.1-BETA1, then report an issue with the base system.

Otherwise report a defect with the port.
 
Yesterday night I did a fresh install on a bhyve VM (never done, pretty cool!) and I was unable to mount the webdav resource, so definitely is a bug of the package!
 
I am trying to create a better report, this is the setup while working properly:

Code:
uname -a                                                                       5.045s 01:04
FreeBSD dad-bsd 13.0-RELEASE-p7 FreeBSD 13.0-RELEASE-p7 #0: Mon Jan 31 18:24:03 UTC 2022     root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC  amd64

This is when is launched the connection:

Code:
 rclone mount dav: /mnt/drive/ --vfs-cache-mode writes --daemon -vv
2022/03/17 01:04:17 DEBUG : rclone: Version "v1.57.0-DEV" starting with parameters ["rclone" "mount" "dav:" "/mnt/drive/" "--vfs-cache-mode" "writes" "--daemon" "-vv"]
2022/03/17 01:04:17 DEBUG : Creating backend with remote "dav:"
2022/03/17 01:04:17 DEBUG : Using config file from "/home/zagor/.config/rclone/rclone.conf"
2022/03/17 01:04:17 DEBUG : found headers:
2022/03/17 01:04:22 DEBUG : rclone: Version "v1.57.0-DEV" finishing with parameters ["/usr/local/bin/rclone" "mount" "dav:" "/mnt/drive/" "--vfs-cache-mode" "writes" "--daemon" "-vv"]

It is properly mounted:

Code:
ls /mnt/drive/                                                                        01:05
Public infostore Trash            Userstore

Last info:

Code:
rclone version                                                                    01:09
rclone v1.57.0-DEV
- os/version: freebsd 13.0-release-p7 (64 bit)
- os/kernel: 13.0-release-p7 (amd64)
- os/type: freebsd
- os/arch: amd64
- go/version: go1.17.3
- go/linking: dynamic
- go/tags: none
 
Although the output is practically the same it can't mount the remote resource:

Code:
uname -a                                  02:18
FreeBSD dad-bsd 13.1-BETA1 FreeBSD 13.1-BETA1 #0 releng/13.1-n249974-ad329796bdb: Thu Mar 10 02:30:25 UTC 2022     root@releng3.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64

Code:
rclone mount dav: /mnt/drive/ --vfs-cache-mode writes --daemon -vv
2022/03/17 02:17:09 DEBUG : rclone: Version "v1.57.0-DEV" starting with parameters ["rclone" "mount" "dav:" "/mnt/drive/" "--vfs-cache-mode" "writes" "--daemon" "-vv"]
2022/03/17 02:17:09 DEBUG : Creating backend with remote "dav:"
2022/03/17 02:17:09 DEBUG : Using config file from "/home/zagor/.config/rclone/rclone.conf"
2022/03/17 02:17:09 DEBUG : found headers:
2022/03/17 02:17:14 DEBUG : rclone: Version "v1.57.0-DEV" finishing with parameters ["/usr/local/bin/rclone" "mount" "dav:" "/mnt/drive/" "--vfs-cache-mode" "writes" "--daemon" "-vv"]

Code:
rclone version                                  02:20
rclone v1.57.0-DEV
- os/version: freebsd 13.1-beta1 (64 bit)
- os/kernel: 13.1-beta1 (amd64)
- os/type: freebsd
- os/arch: amd64
- go/version: go1.17.3
- go/linking: dynamic
- go/tags: none

The remote folder hasn't been mounted:

Code:
ls /mnt/drive/

🤷‍♂️
 
Looks like this issue hasn't been solved with 13.1 and rclone 1.58.1.

Also I totally forgot about this issue since the capsule is down and I didn't have time to write anything.
I am going to ask before to the RCLONE maybe is enough to have this fixed...

🤷‍♂️
 
First make sure you are updated to the full 13.1-RELEASE. The beta releases are expired.
 
It is...

However on a new fresh install I remade the same steps of this guide:

https://blog.socruel.nu/freebsd/mount-webdav-with-rclone-on-freebsd.html

And now I got these other errors:

Code:
2022/05/23 09:47:44 DEBUG : rclone: Version "v1.58.1-DEV" starting with parameters ["rclone" "mount" "-vv" "drive:" "/mnt/drive/" "--vfs-cache-mode" "writes"]
2022/05/23 09:47:44 DEBUG : Creating backend with remote "drive:"
2022/05/23 09:47:44 DEBUG : Using config file from "/home/freezr/.config/rclone/rclone.conf"
2022/05/23 09:47:44 DEBUG : found headers:
2022/05/23 09:47:44 INFO  : webdav root '': poll-interval is not supported by this remote
2022/05/23 09:47:44 DEBUG : vfs cache: root is "/home/freezr/.cache/rclone"
2022/05/23 09:47:44 DEBUG : vfs cache: data root is "/home/freezr/.cache/rclone/vfs/drive"
2022/05/23 09:47:44 DEBUG : vfs cache: metadata root is "/home/freezr/.cache/rclone/vfsMeta/drive"
2022/05/23 09:47:44 DEBUG : Creating backend with remote "/home/freezr/.cache/rclone/vfs/drive/"
2022/05/23 09:47:44 DEBUG : Creating backend with remote "/home/freezr/.cache/rclone/vfsMeta/drive/"
2022/05/23 09:47:44 DEBUG : webdav root '': Mounting on "/mnt/drive/"
2022/05/23 09:47:44 INFO  : vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2022/05/23 09:47:44 DEBUG : : Root:
2022/05/23 09:47:44 DEBUG : : >Root: node=/, err=<nil>
2022/05/23 09:47:44 DEBUG : vfs cache: cleaner exiting
2022/05/23 09:47:44 ERROR : /mnt/drive/: Unmounted rclone mount
2022/05/23 09:47:44 Fatal error: failed to umount FUSE fs: resource temporarily unavailable
fish: Job 1, 'rclone mount -vv drive: /mnt/dr…' has ended

I think I have the fuse components installed e set up properly:

Code:
$ cat /etc/rc.conf | grep fuse
kld_list="fusefs fuse"
$ cat /etc/sysctl.conf | grep mount
vfs.usermount="1"

This is the classic thing that you set up once and forget till something goes wrong...
 
the Boot process is complaining about the module fuse missing...

And as a matter of fact you can't load it:

Code:
$ doas kldload fuse.ko
kldload: can't load fuse.ko: No such file or directory
$ doas kldload fuse
kldload: can't load fuse: No such file or directory

Only fusefs is loaded:

Code:
freezr ) kldstat
Id Refs Address                Size Name
 1   35 0xffffffff80200000  1f30590 kernel
[...]
8    1 0xffffffff82b52000    11cd8 fusefs.ko
[...]

I am not aware if fuse.ko has been deprecated in favor of fusefs.ko.
 
I think it can be useful:
pkg install gmake

git clone https://github.com/rclone/rclone.git
cd rclone/
gmake GOTAGS=cmount

/root/go/bin/rclone cmount gdrive: /mnt/gdrive --allow-other --config /root/.config/rclone/rclone.conf
NOTE: rclone mount -> rclone cmount
freebsd-version -kru
13.1-RELEASE
13.1-RELEASE
13.1-RELEASE

df -Th /mnt/gdrive/
Filesystem Type Size Used Avail Capacity Mounted on
/dev/fuse fusefs.rclone 1.0P 0B 1.0P 0% /mnt/gdrive
 
The issue has been actually spotted, and it belongs to the fuse module.

Using the cmount flag it allows Rclone to:

works around as it uses a different Go->FUSE binding which uses libfuse directly.

 
kr0m

Yes it is.
It is more or less what I did too.

At least now it is working again!

A fix might be adding the cmount option available in the ports through the make config command. 🤔
 
Back
Top