juicedata / juicefs

JuiceFS is a distributed POSIX file system built on top of Redis and S3.
https://juicefs.com
Apache License 2.0
10.63k stars 927 forks source link

juicefs sync error:juicefs sync --dirs -f --threads 10 /mnt/kkk/1.txt nfs://10.200.88.213:/mnt/hhh/1.txt --debug #4937

Open xiaoyanjia-94 opened 3 months ago

xiaoyanjia-94 commented 3 months ago

When the 1.txt file already exists in the DST NFS directory,juicefs sync error happened。

SandyXSD commented 3 months ago

It's more like a bug (or maybe by design, IDK) of NFS server, because it returns OK for mount request with a regular file as the dirpath here.

xiaoyanjia-94 commented 3 months ago

error log: 2024/06/07 18:01:31.704360 juicefs[94967] : maxprocs: Leaving GOMAXPROCS=32: CPU quota undefined [maxprocs.go:47] 2024/06/07 18:01:31.704652 juicefs[94967] : Debug agent listening on 127.0.0.1:6060 [main.go:321] 2024/06/07 18:01:31.704737 juicefs[94967] : Creating file storage at endpoint /mnt/kkk/1.txt [object_storage.go:167] 2024/06/07 18:01:31.704952 juicefs[94967] : Creating nfs storage at endpoint 10.200.88.213:/mnt/hhh/1.txt [object_storage.go:167] 2024/06/07 18:01:31.731339 juicefs[94967] : Prometheus metrics listening on 127.0.0.1:39805 [mount.go:135] 2024/06/07 18:01:31.731967 juicefs[94967] : Syncing from file:///mnt/kkk/1.txt to nfs://root@10.200.88.213:/mnt/hhh/1.txt [sync.go:1342] 2024/06/07 18:01:31.732039 juicefs[94967] : maxResults: 1000, defaultPartSize: 5242880, maxBlock: 10485760 [sync.go:767] 2024/06/07 18:01:31.732082 juicefs[94967] : Iterating objects from file:///mnt/kkk/1.txt with prefix start "" [sync.go:81] 2024/06/07 18:01:31.732155 juicefs[94967] : Listing objects from file:///mnt/kkk/1.txt marker "" [sync.go:110] 2024/06/07 18:01:31.746930 juicefs[94967] : Try 1 failed: NFS3ERR_NOTDIR [sync.go:190] 2024/06/07 18:01:31.748298 juicefs[94967] : Try 2 failed: NFS3ERR_NOTDIR [sync.go:190] 2024/06/07 18:01:32.763607 juicefs[94967] : Try 3 failed: NFS3ERR_NOTDIR [sync.go:190]

SandyXSD commented 3 months ago

We will leave this issue as it is for now, because it is not simple and is only encountered in a very specific scenario.