Add persistence e2e test. #52
Open
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_4Flow map defined for the round 0:
A_0 -> A_0, A_1, A_2, A_3A_1 -> A_1, A_2, A_3A_2 -> A_0, A_2A_3 -> A_0, A_2In round 0 node proposer
A_0receives enough commit messages from other nodes defined in the flow map and inserts a proposal.Node
A_3in round 0 gets locked.Node
A_2after receiving enough commit messages fails to insert proposal locally and unlocks the proposal and triggers round change.In round 0 nodes
A_1andA_4do not receive enough messages on time and trigger round change.At this point: node
A_0has inserted proposal, nodeA_1is not locked, nodeA_2is not locked (unlocked because insert failed), nodeA_3is locked and nodeA_4did not receive any messageAfter moving to round 1 proposer
A_1creates a new proposal which then is propagated through the networkand gets inserted since there is enough commit messages from nodes
A_1,A_2andA_4which is different from the proposal inserted in round 0.