Browse Source

statesync: keep peer despite lightblock query fail (#6692)

When a peer responds with no lightblock for the height we queried, we call the [removePeer method](https://github.com/tendermint/tendermint/blob/master/internal/statesync/reactor.go#L339). This removes the peer from the [dispatcher's list of called peer's](ad65883152/internal/statesync/dispatcher.go (L159)). When the dispatcher then receives responses from the removed peer, it [drops their responses](ad65883152/internal/statesync/dispatcher.go (L130)). These responses may be meaningful or contain a block or data that will help statesync proceed.

[The logs](https://gist.github.com/tychoish/34a1f61eaae3c36c23efc7d0001e805c), when this change is applied, show an additional 3 networking testnets passing. 

addresses:  #6691
pull/6696/head
William Banfield 3 years ago
committed by GitHub
parent
commit
50b00dff71
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 3 deletions
  1. +0
    -3
      internal/statesync/reactor.go

+ 0
- 3
internal/statesync/reactor.go View File

@ -338,9 +338,6 @@ func (r *Reactor) backfill(
if lb == nil { if lb == nil {
r.Logger.Info("backfill: peer didn't have block, fetching from another peer", "height", height) r.Logger.Info("backfill: peer didn't have block, fetching from another peer", "height", height)
queue.retry(height) queue.retry(height)
// as we are fetching blocks backwards, if this node doesn't have the block it likely doesn't
// have any prior ones, thus we remove it from the peer list
r.dispatcher.removePeer(peer)
continue continue
} }


Loading…
Cancel
Save