trapexit / mergerfs

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

Some files from qbittorrent get corrupted #1361

Closed ViRb3 closed 1 month ago

ViRb3 commented 1 month ago

Describe the bug

System details

When downloading very large torrents with many files directly onto my mergerfs mount, everything seems fine and the download completes. However, when I restart my device, some torrents will report as "Missing files". Upon doing a full recheck, some files will be flagged as invalid and begin to redownload. I had this happen twice in a row on the same torrent, and once on another torrent. I tried with cache.files=partial and also cache.files=off.

I have been downloading directly onto my disks without mergerfs using the same setup for years and never saw this issue before. Therefore, I am fairly confident it is related to my usage of mergerfs.

trapexit commented 1 month ago

mergerfs is used by likely thousands for that same purpose without issue. I'm not able to build out that exact setup. You're going to have to narrow down the situation yourself.

ViRb3 commented 1 month ago

Great news, just figured this out and it has nothing to do with mergerfs!

Turns out my problematic torrents share the same root directory, and some files overlap. Therefore, based on which torrent you download last, it will overwrite the overlapping files, and on restart, the rest of the torrents will report an error. If you recheck the failing torrents, the cycle continues.

ViRb3 commented 1 month ago

Sorry for the off-topic, but since qbittorrent seems to work with both cache.files=off and partial (presumably falls back from mmap to regular IO), do you have any recommendation on which mode is more performant/better? I did some tests and didn't spot any noticeable difference.

trapexit commented 1 month ago

As I point out in the docs there are too many variables to make generic suggestions. If something was so cut or dry I'd have it in the docs already.

https://github.com/trapexit/mergerfs?tab=readme-ov-file#performance