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

no peers available, disabling sync (finally explained, inbound vs outbound inconsistency) #3518

Closed
antiochp opened this issue Dec 11, 2020 · 1 comment · Fixed by #3521
Closed
Labels
Milestone

Comments

@antiochp
Copy link
Member

antiochp commented Dec 11, 2020

Thanks to @bladedoyle I think we tracked down one scenario where we see the following regularly in the logs -

20201211 16:04:08.807 WARN grin_servers::grin::sync::syncer - sync: no peers available, disabling sync

When syncing we find "max diff" from all our peers (inbound and outbound) then we randomly select an outbound peer with that diff to sync from.
But we can be in a situation where "max diff" is from an inbound peer without any outbound peers currently being at that diff (say a new block was very recently found) and our peers had not yet updated local diff via ping/pong (every 5-10secs).


We only want to sync from peers we know we reached out to.

Need to think through how best we can approach this.

@antiochp antiochp added this to the 5.0.0 milestone Dec 11, 2020
@antiochp antiochp added the bug label Dec 11, 2020
@antiochp
Copy link
Member Author

antiochp commented Dec 11, 2020

This affects all stages of sync -

  • header sync
  • state sync (txhashset.zip)
  • body sync (full blocks)

Behavior here did change recently to make this consistent throughout the sync process.
We were originally inconsistent with how we handled the peer filtering/selection throughout the sync process #3458

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant