-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IF: Disaster_recovery scenario 2 test #72
Conversation
Observed test failure: |
|
||
############################################################### | ||
# disaster_recovery - Scenario 2 | ||
# |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the detailed description here. It will be even better for each of scenarios to have one sentence describing what the purpose of the test.
I think our new tests should follow this test's pattern.
Note:start |
Disaster Recovery Scenario 2
Integration test with 5 nodes (A, B, C, D, and P). Nodes A, B, C, and D each have one finalizer but no proposers. Node P has a proposer but no finalizers. The finalizer policy consists of the four finalizers with a threshold of 3. The proposer policy involves just the single proposer P.
A, B, C, and D can be connected to each other however we like as long as blocks sent to ndoe A can traverse to the other nodes B, C, and D. However, node P should only be connected to node A.
At some point after IF transition has completed and LIB is advancing, block production on node P should be paused. Enough time should be given to allow and in-flight votes on the latest produced blocks to be delivered to node P. Then, the connection between node P and node A should be severed, and then block production on node P resumed. The LIB on node P should advance to but then stall at block N. Then shortly after that, node P should be cleanly shut down.
Verify that the LIB on A, B, C, and D has stalled and is less than block N. Then, nodes A, B, C, and D can all be cleanly shut down.
Then, reversible blocks from all nodes should be removed. All nodes are restarted from an earlier snapshot (prior to block N).
P is restarted and replays up to block N after restarting from snapshot. Blocks up to and including block N are sent to the other nodes A, B, C, and D after they are also started up again.
Verify that LIB advances and that A, B, C, and D are eventually voting strong on new blocks.