Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider adding a protocol message or field to indicate complete index transfer #4788

Open
scienmind opened this issue Mar 6, 2018 · 4 comments
Labels
protocol Issues that require a change to the protocol (BEP, relay, discovery)

Comments

@scienmind
Copy link
Contributor

Checking the behavior that'd be present at each version update once d4b7be0 is in release, I noticed the following:

  1. Run ST with "-reset-deltas" to simulate post-update run, initiating a full index exchange
  2. Observe "Out of Sync Items" field for remote devices

Actual result: All shared items are listed as out of sync.
The syncing percentage and remaining transfer size also accounts for all shared files.

Expected result: List the actual "out of sync items" only once index exchange is complete, until then show "Updating Index" or something in that style. Percentage and size probably should also reflect the index exchange and not falsely claim that terabytes are about to be synced before the index is exchanged.

With delta indexes, the exchange is fast and this issue isn't noticeable, but a full index exchange for big nodes can be big (several GBs) and can take a while (hours), in the meantime showing to users the all the terabytes are out of sync. Which is misleading.

Version Information

Syncthing Version: v0.14.45
OS Version: Windows 10x64

@calmh
Copy link
Member

calmh commented Mar 6, 2018

There is no protocol wise difference between a device not yet having synced a file and them not yet having sent us the index entry for it. We can not see the difference.

@scienmind
Copy link
Contributor Author

So there is no way of differentiating "initial index exchange" from "just some index update for a new file that was just added"?

@calmh
Copy link
Member

calmh commented Mar 6, 2018 via email

@scienmind
Copy link
Contributor Author

There could be a protocol message that says “index complete, that’s all I have to send”, and we could then show “unknown” instead of out of sync until we receive that.

Yes, that's the basic idea: showing "updating index" or similar until it's known what the other side currently has.

@calmh calmh changed the title Misleading remote devices sync status during index exchange Consider adding a protocol message or field to indicate complete index transfer Mar 6, 2018
@calmh calmh added the protocol Issues that require a change to the protocol (BEP, relay, discovery) label Mar 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
protocol Issues that require a change to the protocol (BEP, relay, discovery)
Projects
None yet
Development

No branches or pull requests

2 participants