Mirroring bug (?) related to FileTimeTolerance

Get help for specific problems
Posts: 6
Joined: 22 Aug 2023

guarster

I have set FileTimeTolerance to 0 and recently I discovered a strange behavior.

I use the "Mirror" variant with a database file. I have two files with 1 second difference in their modification date, but otherwise identical. When I try to sync, a message appears about these two files, saying "Cannot determine sync-direction: No change since last synchronization".

I have read this post: viewtopic.php?t=1183&sid=e6fd545dc346bd8f359392ae2df8222d
and while I understand Zenju's explanation and that FFS can't be sure which file is newer,
I'd still expect the program to just copy the file from the left to the right, since I have selected the "Mirror" variant.

Since FFS knows that the files differ, why does it matter which is newer, when I have chosen to always copy from left to right?
Posts: 6
Joined: 22 Aug 2023

guarster

According to my settings, the direction of the sync should always be from left to right.
Attachments
screenshot.jpg
screenshot.jpg (49.79 KiB) Viewed 169 times
User avatar
Posts: 2283
Joined: 22 Aug 2012

Plerry

Your problem may be self-inflicted.
> I have set FileTimeTolerance to 0 ...
The simplest way to "fix" your problem is to change it back to the default setting of 2 seconds, as apparently even required for FAT/FAT32 file systems.

The "Cannot determine sync-direction: No change since last synchronization" is probably the result of the since FFS version 13.x default use of the database. See e.g. here.
Disabling the use of the database will probably seemingly solve your user problem, but with your FileTimeTolerance set to 0 may result in repetitive unnecessary recopying.

But I agree with your more fundamental statement.
If FFS deems files to be different in any relevant aspect, in a Mirror (and Update) sync variant it should simply update the target-side file to match the source-side file.
User avatar
Posts: 2283
Joined: 22 Aug 2012

Plerry

Further to my last remark just above:
As per the earlier description by Zenju (the author of FFS), your "Cannot determine sync-direction: No change since last synchronization" conflict is apparently considered to be of the 2nd category.
User avatar
Site Admin
Posts: 7052
Joined: 9 Dec 2007

Zenju

Your problem may be self-inflicted.
> I have set FileTimeTolerance to 0 ... Plerry, 24 Mar 2024, 08:24
I tend to agree with Plerry here. The reason you're seeing a 1 second file time difference is (most likely) because the underlying file system is lacking precision.

viewtopic.php?t=1183#p5178 was an interesting read from 11 years back. Meanwhile I come to a different conclusion and would apply file time tolerance also when comparing DB entries with the current state. Whether this makes sense is a different question(*), but it's what the user has requested. I've fixed this for the next version, which will get rid of "Cannot determine sync-direction: No change since last synchronization":
https://www.mediafire.com/file/qppuo2eureyj58y/FreeFileSync_13.5_%255BBeta%255D_Windows_Setup%25283%2529.exe

*) As long as there is FAT(32) there is no reason to have a file time tolerance other than "2". In the far future when FAT is finally gone, there will be a glorious moment when file time tolerance can finally be set to "0". However, probably not in this century anymore!