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.
Persistence issue test where nodes can insert different proposal for the same sequence.
Cluster of 5 nodes:
A_0
,A_1
,A_2
,A_3
,A_4
Flow map defined for the round 0:
A_0 -> A_0, A_1, A_2, A_3
A_1 -> A_1, A_2, A_3
A_2 -> A_0, A_2
A_3 -> A_0, A_2
In round 0 node proposer
A_0
receives enough commit messages from other nodes defined in the flow map and inserts a proposal.Node
A_3
in round 0 gets locked.Node
A_2
after receiving enough commit messages fails to insert proposal locally and unlocks the proposal and triggers round change.In round 0 nodes
A_1
andA_4
do not receive enough messages on time and trigger round change.At this point: node
A_0
has inserted proposal, nodeA_1
is not locked, nodeA_2
is not locked (unlocked because insert failed), nodeA_3
is locked and nodeA_4
did not receive any messageAfter moving to round 1 proposer
A_1
creates a new proposal which then is propagated through the networkand gets inserted since there is enough commit messages from nodes
A_1
,A_2
andA_4
which is different from the proposal inserted in round 0.