Stat(3) fails on mounted folder

What is the problem you are having with rclone?

The linux system call stat() (stat(3) in linux man page) return < 0 when invoked over a file or directory inside a folder mounted via rclone mount

What is your rclone version (output from rclone version)

rclone v1.53.3
os/arch: linux/arm
go version: go1.15.5

Which OS you are using and how many bits (eg Windows 7, 64 bit)

ArchLinux Arm, on Raspberry Pi 0W
(uname -m: armv6l
pacman -Qi rclone | grep Architecture: armv6h
uname -r: 5.4.83-1-ARCH)

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

Tested with both local folder and remote cloud, same result

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

rclone mount /home/fabh2o/testDir/ /home/fabh2o/testMnt/ -vv --debug-fuse --log-file=log.rclone

Once mounted, i tried

fabh2o@rpi0w-arch ~  $ tree /home/fabh2o/testMnt
    /home/fabh2o/testMnt
    ├── dir1
    │   ├── a
    │   │   └── testFile1
    │   ├── b
    │   └── c
    ├── dir2
    │   └── testFile3
    ├── dir3
    ├── testFile1
    └── testFile2

    6 directories, 4 files

so the files are there. If i do cat /home/fabh2o/testMnt/testFile1 i can see the file content, i can edit it etc.
I then unmounted the folder, and after mounting again (same command) i tried calling a simple stat() implementation (codewiki.wikidot.com/c:system-calls:stat).

fabh2o@rpi0w-arch ~  $ ./stat3 /home/fabh2o/testMnt/
    Information for /home/fabh2o/testMnt/
    ---------------------------
    File Size:              0 bytes
    Number of Links:        1
    File inode:             1
    File Permissions:       drwxr-xr-x

    The file is not a symbolic link

fabh2o@rpi0w-arch ~  $ ./stat3 /home/fabh2o/testMnt/testFile1
exited with return code 1

fabh2o@rpi0w-arch ~  $ ./stat3 /home/fabh2o/testMnt/dir1
exited with return code 1

A log from the command with the -vv --debug-fuse flag

2020/12/23 10:16:04 DEBUG : rclone: Version "v1.53.3" starting with parameters ["rclone" "mount" "/home/fabh2o/testDir/" "/home/fabh2o/testMnt/" "-vv" "--debug-fuse" "--log-file=log.rclone"]
2020/12/23 10:16:04 DEBUG : Creating backend with remote "/home/fabh2o/testDir/"
2020/12/23 10:16:04 DEBUG : Using config file from "/home/fabh2o/.config/rclone/rclone.conf"
2020/12/23 10:16:04 INFO  : Local file system at /home/fabh2o/testDir/: poll-interval is not supported by this remote
2020/12/23 10:16:04 DEBUG : Local file system at /home/fabh2o/testDir/: Mounting on "/home/fabh2o/testMnt/"
2020/12/23 10:16:04 DEBUG : : Root: 
2020/12/23 10:16:04 DEBUG : : >Root: node=/, err=<nil>
2020/12/23 10:16:06 DEBUG : fuse: <- Access [ID=0x4 Node=0x1 Uid=1000 Gid=1000 Pid=5011] mask=0x0
2020/12/23 10:16:06 DEBUG : fuse: -> [ID=0x4] Access
2020/12/23 10:16:06 DEBUG : fuse: <- Getattr [ID=0x6 Node=0x1 Uid=1000 Gid=1000 Pid=5015] 0x0 fl=0
2020/12/23 10:16:06 DEBUG : /: Attr: 
2020/12/23 10:16:06 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2020/12/23 10:16:06 DEBUG : fuse: -> [ID=0x6] Getattr valid=1s ino=1 size=0 mode=drwxr-xr-x
2020/12/23 10:16:08 DEBUG : fuse: <- Lookup [ID=0x8 Node=0x1 Uid=1000 Gid=1000 Pid=5026] "testFile1"
2020/12/23 10:16:08 DEBUG : /: Lookup: name="testFile1"
2020/12/23 10:16:08 DEBUG : /: >Lookup: node=testFile1, err=<nil>
2020/12/23 10:16:08 DEBUG : testFile1: Attr: 
2020/12/23 10:16:08 DEBUG : testFile1: >Attr: a=valid=1s ino=0 size=7 mode=-rw-r--r--, err=<nil>
2020/12/23 10:16:08 DEBUG : fuse: -> [ID=0x8] Lookup 0x2 gen=0 valid=1s attr={valid=1s ino=11044269580612263685 size=7 mode=-rw-r--r--}
2020/12/23 10:16:08 DEBUG : fuse: <- Access [ID=0xa Node=0x2 Uid=1000 Gid=1000 Pid=5026] mask=0x0
2020/12/23 10:16:08 DEBUG : fuse: -> [ID=0xa] Access
2020/12/23 10:16:10 DEBUG : fuse: <- Lookup [ID=0xc Node=0x1 Uid=1000 Gid=1000 Pid=5041] "dir1"
2020/12/23 10:16:10 DEBUG : /: Lookup: name="dir1"
2020/12/23 10:16:10 DEBUG : /: >Lookup: node=dir1/, err=<nil>
2020/12/23 10:16:10 DEBUG : dir1/: Attr: 
2020/12/23 10:16:10 DEBUG : dir1/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2020/12/23 10:16:10 DEBUG : fuse: -> [ID=0xc] Lookup 0x3 gen=0 valid=1s attr={valid=1s ino=1725182271739095166 size=0 mode=drwxr-xr-x}
2020/12/23 10:16:10 DEBUG : fuse: <- Access [ID=0xe Node=0x3 Uid=1000 Gid=1000 Pid=5041] mask=0x0
2020/12/23 10:16:10 DEBUG : fuse: -> [ID=0xe] Access
2020/12/23 10:16:14 INFO  : Signal received: interrupt
2020/12/23 10:16:14 INFO  : Exiting...

I suspect it's some kind of permission issue with fuse, but i see no major problem in my setup.

The problem of not mounting correctly (stat() not working, missing . and .. files) has been made evident by the fish shell, witch uses stat() to check if a provided directory can be accessed.

Beside running rclone with the -vv --debug-fuse flag, is there anything i can do to investigate the problem?

fuse2 version: 2.9.9-4

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.