Hello guys, I have a setup of syncing same folder b/w 3 devices. The setup is this: Device A creates some new files (actually it creates updated version of same sets of files). It then sync those changes with other 2 devices B, C. Both devices B, C are on same Wifi. A is always on Internet far away.
But out of B and C, only B is turned on more often than C. So often B is the devices that gets update the first from A. Device A only shares the folder in Send Only mode. B, C shares in Send/Receive mode.
Now the problem: When device B is update to date and on same Wifi as C and C is turned on, C instead pulls the data from A instead of B. Shouldn’t C be pulling data from B sometimes, especially when they are on same Wifi, which, btw has NAT enabled.
Thanks for reading this, and thanks a lot to Syncthing community for creating this super-easy software. Cheers!
I am not sure how you observe that C pulls from A, because there is nothing in the UI (or even logs) that would tell you that.
Yes, it’s expected that it pulls files from both devices, as that’s how syncthing works.
It will naturally end up pulling more data from the device that responds with the data faster (B in this case), but it’s not going to avoid pulling data from A.
If you want C to only download files from B, then remove the link between A and C, so that C can only get the files via B.
The only way to do that, is to remove the link between A and C.
In syncthing all devices are equal, there is no reason why C would think that B is somehow special to direct all the traffic there.
You can rate limit A on C, which will naturally make it get more data from B, but it will be rate limited for new files as well.
Even if C knew that B is somehow special, perhaps B is overwhelmed with requests from some other set of devices, so the logical thing to do is to still ask everyone for data, and direct proportionally more traffic to the device that responds the fastest, if you are optimising for propagation speed, which we are.
From what I understand @rf007 is describing that when B is already fully synced, that C is still only pulling data from A, and none from B - as in the transfer rate to B stays at 0. Correct?
What I wanted the screenshots for was to check: 1. that the folder is actually shared between A and B - you redacted that bit, I hope it is. I know, unlikely and trivial mistake, but it happens so I like to check. 2. That devices A and B are actually connected via local tcp. Device B being an android device means all kinds of things might go wrong there. Please post screenshots including the external devices from both sides.
And finally if all of the above checks out, recreate the scenario (A and B in sync, C missing one file) and enable model debug logging on B and C before connecting C to start the sync. That will show in detail where stuff is synced from.
This does not affect me anymore. I found the issue, and it was because of android. I am using TrackerControl app to block trackers in my apps, which was messing up the local connection on Wifi and only allowing Internet connection. My sincere apologies and thanks a lot for your time.