[checkpoint] local_fragments should be indexed on sequence number #4502
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
local_fragments
are currently indexed onAuthorityName
, which means that fragments in it can be from any checkpoint. Although we empty the entirelocal_fragments
table whenever we are forming a new checkpoint, fragments from previous checkpoints can still show up inlocal_fragments
when a consensus message is delayed (i.e. receiving a fragment after the checkpoint is formed). And currently in all uses oflocal_fragments
, we don't distinguish their checkpoint sequence number. This can lead to two issues: 1) we may be thinking that we have already fragmented with a validator, but in fact we haven't. 2) we may be using a fragment from previous checkpoint to construct a new checkpoint by thinking that there is a link to the spanning tree.