File Operations Load Endlessly When Offline

What is the problem you are having with rclone?

When reading a file or trying to list the content of a rclone mounted directory while being offline, instead of resulting with an error, the corresponding program will hang endlessly.

I stumbled across this issue because in my .bashrc-file, I'm loading an oh-my-posh configuration file from a nextcloud mount.

However, this issue can also be seen when trying to open the mount in Nautilus. Instead of giving up in some seconds, it loads the file listing endlessly.

Run the command 'rclone version' and share the full output of the command.

rclone v1.61.0-beta.6570.705e8f2fe
- os/version: debian bookworm/sid (64 bit)
- os/kernel: 6.0.8-surface (x86_64)
- os/arch: amd64
- go/version: go1.19.3
- go/linking: static
- go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Nextcloud (webdav)

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone mount \
    --config=~/.config/rclone/rclone.conf \
    --vfs-cache-mode full \
    --log-file /tmp/rclone/nextcloud.log \
    nextcloud: ~/Nextcloud

The rclone config contents with secrets removed.

[nextcloud]
type = webdav
url = **private**
vendor = nextcloud
user = **private**
pass = **private**

A log from the command with the -vv flag

2022/11/16 20:26:49 ERROR : webdav root '': Statfs failed: Propfind "**private**": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving
2022/11/16 20:26:49 DEBUG : : >Statfs: stat={Blocks:4503599627370495 Bfree:4503599627370495 Bavail:4503599627370495 Files:1000000000 Ffree:1000000000 Bsize:4096 Namelen:255 Frsize:4096}, err=<nil>
2022/11/16 20:26:49 DEBUG : : >Statfs: stat={Blocks:274877906944 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Bsize:4096 Namelen:255 Frsize:4096}, err=<nil>
2022/11/16 20:26:51 DEBUG : pacer: low level retry 1/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:26:53 DEBUG : pacer: low level retry 2/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:26:55 DEBUG : pacer: low level retry 3/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:26:57 DEBUG : pacer: low level retry 4/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:26:59 DEBUG : pacer: low level retry 5/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:01 DEBUG : pacer: low level retry 6/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:03 DEBUG : pacer: low level retry 7/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:05 DEBUG : vfs cache RemoveNotInUse (maxAge=3600000000000, emptyOnly=false): item **private** not removed, freed 0 bytes
2022/11/16 20:27:05 DEBUG : vfs cache RemoveNotInUse (maxAge=3600000000000, emptyOnly=false): item **private** not removed, freed 0 bytes
2022/11/16 20:27:05 DEBUG : vfs cache RemoveNotInUse (maxAge=3600000000000, emptyOnly=false): item **private** not removed, freed 0 bytes
2022/11/16 20:27:05 DEBUG : vfs cache RemoveNotInUse (maxAge=3600000000000, emptyOnly=false): item **private** not removed, freed 0 bytes
2022/11/16 20:27:05 INFO  : vfs cache: cleaned: objects 4 (was 4) in use 0, to upload 0, uploading 0, total size 164.179Ki (was 164.179Ki)
2022/11/16 20:27:05 DEBUG : pacer: low level retry 8/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:07 DEBUG : pacer: low level retry 9/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:09 DEBUG : pacer: low level retry 10/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:09 ERROR : /: Dir.Stat error: couldn't list files: Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving
2022/11/16 20:27:09 ERROR : IO error: couldn't list files: Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving
2022/11/16 20:27:09 DEBUG : /: Attr: 
2022/11/16 20:27:09 DEBUG : /: >Lookup: node=<nil>, err=couldn't list files: Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving
2022/11/16 20:27:09 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2022/11/16 20:27:09 DEBUG : /: Attr: 
2022/11/16 20:27:09 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2022/11/16 20:27:09 DEBUG : /: ReadDirAll: 
2022/11/16 20:27:11 DEBUG : pacer: low level retry 1/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:13 DEBUG : pacer: low level retry 2/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:15 DEBUG : pacer: low level retry 3/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:17 DEBUG : pacer: low level retry 4/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:19 DEBUG : pacer: low level retry 5/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:21 DEBUG : pacer: low level retry 6/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)
2022/11/16 20:27:23 DEBUG : pacer: low level retry 7/10 (error Propfind "**private**/remote.php/webdav/": dial tcp: lookup **private** on 127.0.0.53:53: server misbehaving)

low level retry will repeat forever

What are you expecting to happen?

Thanks for your rapid answer :smile:
I'd expect the I/O operation to fail at some point (probably configurable using something like a "--timeout" option or something of the sort)

That's what it does after the timeout and retries are reached.

That's strange - both nautilus and oh-my-posh are stuck forever trying to list Nextcloud files or read a file from it.
For that reason, I thought that all rclone is doing is silently failing and retrying 10 times again.

Sorry for the wrong assumption, then - and thanks for the rapid answer :smile: