trapexit / mergerfs

a featureful union filesystem
http://spawn.link
Other
4.29k stars 174 forks source link

renaming of file failed #989

Closed marc0janssen closed 1 year ago

marc0janssen commented 2 years ago

<Delete text, see below for new entry>

trapexit commented 2 years ago

It's not difficult. It's really easy.

1) start tracing mergerfs 2) strace -o /tmp/touch.trace.txt touch /mergerfs-mountpoint/aa.txt 3) strace -o /tmp/mv.trace.txt mv /mergerfs-mountpoint/aa.txt /mergerfs-mountpoint/bb.txt 4) stop tracing mergerfs 5) if there was an error send traces to trapexit

That's it.

marc0janssen commented 2 years ago

eridu:/mnt/videom# strace -o touch.trace.txt touch aa.txt eridu:/mnt/videom# strace -o mv.trace.txt mv aa.txt bb.txt mv: can't rename 'aa.txt': No such file or directory

Log files

trapexit commented 2 years ago
10755 16:18:40.137107 rename("/volume2/video2/aa.txt", "/volume2/video2/bb.txt") = 0 <0.000202>
10755 16:18:40.137402 unlink("/volume1/video/bb.txt") = -1 ENOENT (No such file or directory) <0.000036>
10755 16:18:40.137554 writev(3, [{iov_base="\20\0\0\0\0\0\0\0\276\1\0\0\0\0\0\0", iov_len=16}], 1) = 16 <0.000035>

You didn't have the timestamps on the mv trace enabled but assuming that it matches with this request... looks like a synology thing. Maybe related to the FUSE changes they made. mergerfs is working normally and as expected. It was asked to rename the file, it did, and returned success.

iov_base="\20\0\0\0\0\0\0\0\276\1\0\0\0\0\0\0"

16 bytes. The "fuse_out_header" structure. length of the payload as 32bit int, 32bit int for error (which is zero meaning no error), and the 64bit unique message ID.

I would recommend trying another FUSE based filesystem like mhddfs, sshfs, or rclone and doing similar tests and reporting back to Synology if they exhibit the same issues.

marc0janssen commented 2 years ago

Thanks Antonio! Great support! I'll what will do.... I have separate volumes again now... maybe I keep it this way.