I have an issue where a single file looks out of sync, but actually everything is in sync. All folders show up-to-date, but remote completion and local state disagree on some devices.
For a better understanding, a simplified look on the topology:
- In todays sync, three devices were involved (there are a lot more devices, but only these three are relevant)
- Device A, which was the source for an entirely new folder, filled with data
- Device “server”, a central server that holds all data.
- Device C, an additional device that is ONLY connected to “server” and gets everything from that device
So, I did the following today:
- Add an entirely new folder, filled with data on Device A.
- Share that folder with “server”
- On server, accept the folder.
- While data was syncing between server and A, I set the server to “relay” the data over to device C by sharing with C. (A and C are not connected directly).
- After a while, everything was synced and is now up-to-date, but for some unknown reason it looks like this:
State on Device A:
The Global and Local State reported here are fully correct. Note that it shows that the remote completion (to server) needs one last file.
State on Server:
Note how the local state on Server reports exactly one file less than what Device A reports. The Server also thinks that C still needs one file, which is - you guess it - exactly the same file that A thinks is needed by Server.
-> The global state on Server is messed up due to me repeatedly changing ignore patterns. I can confirm that the issue is unrelated to the ignores, because the affected file is not and was never ignored and the issue also happens without any ignores set (the issue appeared BEFORE I started to set any ignores).
The file in question is absolutely not special, it’s a simple data file that was never touched nor is there anything else worth noting about it. It wasn’t modified during the whole sync operation.
Note that all computers are in fact up-to-date (which is also displayed on the folders, but not in remote completion), as the file in question has been synced to all devices. It’s just the remote completion + local state that misreports on two devices.
There were no restarts or crashes involved at any point, when this issue started happening. Since then I tried some things, including restarts of both server and A and I also did -reset-deltas
, but with no luck.
Device A is on syncthing v1.4.0-rc.11, Windows (amd64), Server is 1.3.4 Linux (amd64) and C is 1.3.4, Windows (amd64).