-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Labels
C:syncComponent: Fast Sync, State SyncComponent: Fast Sync, State SyncT:bugType Bug (Confirmed)Type Bug (Confirmed)
Milestone
Description
When VerifyCommit failed, the logic only redo the first block request, but the wrong block may was the second one. In this situation, didProcess will always empty loop in the next moment .
tendermint/blockchain/reactor.go
Lines 300 to 312 in d419fff
| err := state.Validators.VerifyCommit( | |
| chainID, firstID, first.Height, second.LastCommit) | |
| if err != nil { | |
| bcR.Logger.Error("Error in validation", "err", err) | |
| peerID := bcR.pool.RedoRequest(first.Height) | |
| peer := bcR.Switch.Peers().Get(peerID) | |
| if peer != nil { | |
| // NOTE: we've already removed the peer's request, but we | |
| // still need to clean up the rest. | |
| bcR.Switch.StopPeerForError(peer, fmt.Errorf("BlockchainReactor validation error: %v", err)) | |
| } | |
| continue FOR_LOOP | |
| } else { |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
C:syncComponent: Fast Sync, State SyncComponent: Fast Sync, State SyncT:bugType Bug (Confirmed)Type Bug (Confirmed)