Single file shows out of sync, but is not

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:

  1. Add an entirely new folder, filled with data on Device A.
  2. Share that folder with “server”
  3. On server, accept the folder.
  4. 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).
  5. 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).

So I should probably do the more obvious things first:

I touched the file in question and that resolved everything. Still no idea what happened though.

Edit: After touch'ing the metadata on server is still off (one file less than what it actually has), but the remote completion now looks good everywhere.

Yeah, there are some known database consistency issues in pre-1.4.0 versions which can lead to this. Touching will usually fix these.

What mean that? Which commands are needed?

touch is a linux command: http://man7.org/linux/man-pages/man1/touch.1.html

Understood, but this would be no way for such difficulties.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.