-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
Tendermint version (use tendermint version or git rev-parse --verify HEAD if installed from source):
ABCI app (name for built-in, URL for self-written if it's publicly available):
Environment:
- OS (e.g. from /etc/os-release):
- Install tools:
- Others:
What happened:
I think there are 2 situations when a node needs to receive block parts,
- it receives a proposal of the round, so it needs to receive the proposalBlock from the proposer
- it receives a PoLc, so it has got a BlockID which contains a BlockPartsHeader. This situation will also set cs.ProposalBlockParts ,but it can go without receiving the proposal.
So how about the situation 2 when latter the proposal comes, it will override cs.ProposalBlockParts . It will lead to interrupt the block receiving of PoLC's BlockID.
What you expected to happen:
I suggest we can add a cs.LockedBlockID to indicate we are now receiving blockParts because we have a lockedBlockID.
Now in defaultSetProposal, we can judge
if cs.LockedBlockID !=nil {
return
}
so the cs.ProposalBlockParts won't be overwritten.
Have you tried the latest version: yes/no
How to reproduce it (as minimally and precisely as possible):
Logs (paste a small part showing an error (< 10 lines) or link a pastebin, gist, etc. containing more of the log file):
Config (you can paste only the changes you've made):
node command runtime flags:
/dump_consensus_state output for consensus bugs
Anything else we need to know: