Overide Changes button behavior

From another post:

Override changes tells the master to take the global version of all files, increment it by one, and advertise it to everyone, causing everyone in the cluster to download all the files the master has (as this is now the newest version).

So, to be clear; I have a 65GB sync folder. A few small files are marked as sync conflicts. It I click override changes, all 65Gb will be pushed out to the every device in the cluster?

This appears to be what is happening and it’s really a problem for me.

The other nodes will mark every file as out of sync and will tell you so in the UI. But the files won’t be transferred, as the other nodes will see that the checksum is the same, so won’t ask for any data. Only the index exchange will cause some data to be transferred.

Thanks. That doesn’t match the behavior I am getting, so I assume that I am having another issue that is causing re-downloading

How do you know that its redownloading though?

It says “syncing” on several of the devices and looking at them I can watch items downloading, even though as far as I can tell, everything is there already

Well items still go through the downloading stage,yet they just update metadata if the content is the same. You shouldn’t see any progress bars etc.

I see progress bars, taking several minutes per file (they are 100+ MBs)

In which case if you check the md5 sums of the files you will see that they are not identical.

I don’t doubt that they are not identical (though how I would calculate the MD5 on a respberry pi directory with 12,000 files is beyond me). My question is more how could they not be? All the data has only ever been written by Syncthing, no opportunity for user error. I create the empty directories, add them to Syncthing and they start propagating. At some point, they get out of sync. The out of sync propogates to the whole cluster except the send-only. I have to click override changes repeatedly before it says up to date. A few hours later I have to repeat the whole process

Clearly I am doing something wrong, but I can’t figure out what

The fact that it shows up as out of sync means files have changed (even if its permissions or timestamps etc). You don’t need to md5 the whole tree, you can compare a single file out of the out of sync list on both sides.

I understand that the files have changed, I don’t understand how they could have changed if they are only, ever, managed by syncthing. Literally no user intervention, no other processes running on the Pis are touching them. Ignore permissions are checked everywhere, so I assume it can’t be permissions. If it’s timestamps, it’s syncthing doing it to itself, which should not be the case.

You’d be surprised. Plex, Gnome desktop environment and all sorts of other software tools rotate pictures on you behalf, increment mp3 play counts and so on. I suggest you diff the files and actually understand what has changed, as it will be easier to track down who changed it.

Plex, Gnome desktop environment and all sorts of other software tools rotate pictures on you behalf, increment mp3 play counts and so on.

There is nothing like that running. CLI only, not logged in, only services that should even be aware of those directories are syncthing and Lighttpd. No interactive daemons, no backup, no syncing other than syncthing. No servers connected, nor connecting to. No file sharing at all.

I get what you are suggesting, but I have carefully built a minimal system, I should be aware of anything that is interacting with those directories and there isn’t anything else that I can find that could be.

Sure, but sitting here talking about what shouldn’t happen seems counter productive. You should understand what is actually different, then we can talk about the possible causes.

How, exactly, would I use the diff command on two different files that are on two separate computers?

Copy one of the files to the other computer. Also, before you do that, I suggest you compare the output of stat on both files on both sides.

Output of stat?

Stat command on linux

Ah, that’s new. Which options would be useful in this case? (what triggers a sync change)

That just print a bunch of information about timestamps of the files, it won’t cause the issue you are describing. What I am saying is you should stat the out of sync files (the ones you claim have not changed) on both sides, provide the output here, copy the file across and diff it, provide diff output here.