How smart were the database refreshes?

Hi, I am just wondering how “smartly designed” the database refreshes were for the v0.13->0.14 format. My understanding is that they were just deleted and fully recreated, no?

My setup is a Linux server, an OS X desktop, and a Windows desktop. My update process was: Linux server first in AM of 20th, then OS X at Noon of 20th, then Windows at Noon of 21st. I am trying to figure out if any of my data modified during this “not-everyone-on-same-version” timeframe could have caused stuff to be improperly modified.

Why I think this: a folder on my OS X client(the Master) was shown as out of sync on the 21st. This happened after I updated my Windows device. So I assume the database from Windows shows “these files were changed on July 21st” because of db refresh, even though I hadn’t modified these files since the evening of the 20th on OS X. If my OS X client wasn’t master, I think my data would have gotten (at least partially) overwritten by my out-of-sync Windows client, losing me a day’s worth of work. This worries me. But maybe I am wrong and nothing would have happened? But based on the out-of-sync warning, I assume it would have messed up my previous day’s work :confused:

I know db recreations don’t need to be done usually, but how smart is it, exactly? What if someone has an old (and out of sync) device, decide to finally upgrade to v14, and then they have a total mess of data because of it?

Hopefully I am 100% wrong about the above situation being possible, because otherwise that seems a bit scary (especially for those ~2k people still using v12!). So thanks for any insight :slight_smile:

PS: it sounds like V0.14 previously deleted files re-appear → ignore permission bits, but mine does not seem to relate to permissions. I also only use the base syncthing app, no wrappers.

What you are saying is impossible. At the worst case you’d end up with conflicts, as there would be two files, with different content, having the same version from two different devices

So I would have simply ended up with lots of *.sync-conflict files even if my OS X wasn’t folder master? Okay, that’s good to know then and I guess there is no issue then! Got maybe a bit wound-up worrying that someone might lose data and get mad at Syncthing. Thanks and good work again! :smiley:

You’d either end up out of sync as master refused to accept the new state or a bunch of conflicts on the non-master side. Sure, if you press override changes, you’d might have genuine loss of the non-master side, but that could happen regardless of the database reset if you happen to be making changes on non-master.

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