-
Notifications
You must be signed in to change notification settings - Fork 5
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
Disaster recovery integration test #13
Comments
arhag
changed the title
IF: Disaster recovery integration test
Disaster recovery integration test
Apr 10, 2024
heifner
added a commit
that referenced
this issue
Apr 19, 2024
heifner
added a commit
that referenced
this issue
Apr 23, 2024
heifner
added a commit
that referenced
this issue
Apr 23, 2024
heifner
added a commit
that referenced
this issue
Apr 23, 2024
heifner
added a commit
that referenced
this issue
Apr 24, 2024
heifner
added a commit
that referenced
this issue
Apr 24, 2024
heifner
added a commit
that referenced
this issue
Apr 25, 2024
IF: Add the beginning of a savanna disaster recovery test
heifner
added a commit
that referenced
this issue
Apr 25, 2024
heifner
added a commit
that referenced
this issue
Apr 25, 2024
heifner
added a commit
that referenced
this issue
Apr 25, 2024
heifner
added a commit
that referenced
this issue
Apr 26, 2024
heifner
added a commit
that referenced
this issue
Apr 29, 2024
heifner
added a commit
that referenced
this issue
Apr 29, 2024
heifner
added a commit
that referenced
this issue
Apr 29, 2024
heifner
added a commit
that referenced
this issue
Apr 30, 2024
heifner
added a commit
that referenced
this issue
Apr 30, 2024
heifner
added a commit
that referenced
this issue
Apr 30, 2024
heifner
added a commit
that referenced
this issue
Apr 30, 2024
heifner
added a commit
that referenced
this issue
Apr 30, 2024
heifner
added a commit
that referenced
this issue
Apr 30, 2024
heifner
added a commit
that referenced
this issue
May 17, 2024
heifner
added a commit
that referenced
this issue
May 17, 2024
heifner
added a commit
that referenced
this issue
May 17, 2024
heifner
added a commit
that referenced
this issue
May 17, 2024
heifner
added a commit
that referenced
this issue
May 20, 2024
heifner
added a commit
that referenced
this issue
May 20, 2024
…lso update the wait on node2 and node3 to be on N.
heifner
added a commit
that referenced
this issue
May 21, 2024
heifner
added a commit
that referenced
this issue
May 22, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Scenario 1
Create integration test with 4 nodes (A, B, C, and D) which each have their own producer and finalizer. The finalizer policy consists of the four finalizers with a threshold of 3. The proposer policy involves all four proposers.
The 4 nodes are cleanly shutdown in the following state:
Nodes B, C, and D lose their reversible blocks. All nodes restart from an earlier snapshot.
A is restarted and replays up to its last reversible block (which is a block number greater than N) after restarting from snapshot. Blocks N and later is sent to the other nodes 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.
Scenario 2
Create an 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 node 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.
Scenario 3
Create integration test with 4 nodes (A, B, C, and D) which each have their own producer and finalizer. The finalizer policy consists of the four finalizers with a threshold of 3. The proposer policy involves all four proposers.
All nodes are shut down. The reversible blocks on all nodes is deleted. Then restart all nodes from an earlier snapshot.
All nodes eventually sync up to block N. Some nodes will consider block N to LIB but others may not.
Not enough finalizers should be voting because of the lock in their finalizer safety information file. Verify that LIB does not advance on any node.
Cleanly shut down all nodes and delete their finalizer safety information files. Then restart the nodes.
Verify that LIB advances on all nodes and they all agree on the LIB. In particular, verify that block N is the same ID on all nodes as the one before nodes were first shutdown.
The text was updated successfully, but these errors were encountered: