Juicefs hangs on the last file when backing up a juicefs filesystem. When I say hang, I mean it just sits there for hours and hours. No message about what is going on. The clock keeps ticking. The file count is one less than the number of files on the file system. It responds to ctrl-c. Tested on three different juicefs mounts on the same compute instance.
I’m trying to figure out why restic behaves like this. I created a new juicefs filesystem and mounted it via fstab on /mnt/jfs-test on my Debian 11 VPS. It contained these files by default:
root@he02:/mnt/jfs-test# ls -la total 10 drwxrwxrwx 2 root root 4096 Mar 17 11:36 . drwxr-xr-x 5 root root 4096 Mar 17 11:38 .. -r-------- 1 root root 0 Mar 17 11:38 .accesslog -r-------- 1 root root 1260 Mar 17 11:38 .config -r--r--r-- 1 root root 0 Mar 17 11:38 .stats dr-xr-xr-x 2 root root 0 Mar 17 11:38 .trash
If I exclude the file
.accesslog, restic finishes with no errors, else it hangs after three files.
Juicefs has this to say about
Every JuiceFS mount point contains virtual files called
.oplog(also aliased to
.accesslogfrom 4.7.0 and above) and
.ophistory. They are text files that contain realtime file system stats like operation type, UID/GID, inode, and operation duration.
(Troubleshooting Methods | JuiceFS Document Center)
Might this be a bug in restic? Do I really need to handle this filesystem specially?
restic 0.15.1 compiled with go1.19.5 on linux/amd64
Debian 11.6 x86_64 on Hetzner Cloud
juicefs version 1.0.3+2022-12-27.e4bf15a
Restic command line (run by root):
restic backup --verbose=2 --no-scan /mnt/jfs-test/
The repository is using sftp.
debug log file /root/restic/jfs-test-debug.log debug enabled open repository repository bf16cbdf opened (version 2, compression level auto) lock repository using parent snapshot 4499d1df load index files start backup on [/mnt/jfs-test/] unchanged /mnt/jfs-test/.config unchanged /mnt/jfs-test/.trash/ modified /mnt/jfs-test/.stats, saved in 0.008s (2.852 KiB added, 939 B stored) [1:27] 2 files, 4.082 KiB, 0 errors /mnt/jfs-test/.accesslog