@@ -51,7 +51,6 @@ class SkvbcChaoticStartupTest(ApolloTest):
5151
5252 __test__ = False # so that PyTest ignores this test scenario
5353
54- @unittest .skip ("After CheckpointMsg-s forwarding, in this situation the late Replica initiates State Transfer." )
5554 @with_trio
5655 @with_bft_network (start_replica_cmd , selected_configs = lambda n , f , c : n == 7 )
5756 async def test_inactive_window_catchup_up_to_gap (self , bft_network ):
@@ -84,6 +83,8 @@ async def write_req(num_req=1):
8483 for _ in range (num_req ):
8584 await skvbc .send_write_kv_set ()
8685
86+ await trio .sleep (1 )
87+
8788 with net .ReplicaOneWayTwoSubsetsIsolatingAdversary (
8889 bft_network , {late_replica },
8990 bft_network .all_replicas (without = {primary , late_replica })) as adversary :
@@ -107,38 +108,37 @@ async def write_req(num_req=1):
107108 while True :
108109 last_exec = await bft_network .get_metric (late_replica , bft_network , 'Gauges' , "lastExecutedSeqNum" )
109110 log .log_message (message_type = f"replica = { late_replica } ; lase_exec = { last_exec } " )
110- if last_exec == seq_nums_per_checkpoint + num_reqs_after_first_checkpoint :
111+ if last_exec == seq_nums_per_checkpoint + num_reqs_after_first_checkpoint + 1 :
111112 break
112113 await trio .sleep (seconds = 0.3 )
113114
114115 bft_network .stop_replica (late_replica )
115116
116- # create 2 checkpoints and wait for checkpoint propagation
117- await skvbc .fill_and_wait_for_checkpoint (
118- initial_nodes = bft_network .all_replicas (without = {late_replica }),
119- num_of_checkpoints_to_add = checkpoints_to_advance_after_first ,
120- verify_checkpoint_persistency = False
121- )
122-
123- await bft_network .wait_for_replicas_to_collect_stable_checkpoint (
124- bft_network .all_replicas (without = {late_replica }),
125- first_stable_checkpoint_to_reach + checkpoints_to_advance_after_first )
117+ # create 2 checkpoints and wait for checkpoint propagation
118+ await skvbc .fill_and_wait_for_checkpoint (
119+ initial_nodes = bft_network .all_replicas (without = {late_replica }),
120+ num_of_checkpoints_to_add = checkpoints_to_advance_after_first ,
121+ verify_checkpoint_persistency = False
122+ )
126123
127- bft_network .start_replica (late_replica )
128- with trio .fail_after (seconds = 30 ):
129-
130- late_replica_catch_up = False
131- while not late_replica_catch_up :
132- for replica_id in bft_network .get_live_replicas ():
133- last_stable = await bft_network .get_metric (replica_id , bft_network , 'Gauges' , "lastStableSeqNum" )
134- last_exec = await bft_network .get_metric (replica_id , bft_network , 'Gauges' , "lastExecutedSeqNum" )
135- log .log_message (message_type = f"replica = { replica_id } ; last_stable = { last_stable } ; lase_exec = { last_exec } " )
136- if replica_id == late_replica and last_exec == 2 * seq_nums_per_checkpoint :
137- late_replica_catch_up = True
124+ await bft_network .wait_for_replicas_to_collect_stable_checkpoint (
125+ bft_network .all_replicas (without = {late_replica }),
126+ first_stable_checkpoint_to_reach + checkpoints_to_advance_after_first )
138127
139- await write_req ()
140- await trio .sleep (seconds = 3 )
128+ bft_network .start_replica (late_replica )
129+ with trio .fail_after (seconds = 30 ):
130+ late_replica_catch_up = False
131+ while not late_replica_catch_up :
132+ for replica_id in bft_network .get_live_replicas ():
133+ last_stable = await bft_network .get_metric (replica_id , bft_network , 'Gauges' , "lastStableSeqNum" )
134+ last_exec = await bft_network .get_metric (replica_id , bft_network , 'Gauges' , "lastExecutedSeqNum" )
135+ log .log_message (message_type = f"replica = { replica_id } ; last_stable = { last_stable } ; lase_exec = { last_exec } " )
136+ if replica_id == late_replica and last_exec >= 3 * seq_nums_per_checkpoint :
137+ late_replica_catch_up = True
138+ await write_req ()
139+ await trio .sleep (seconds = 3 )
141140
141+ @unittest .skip ("Testing in CI/CD" )
142142 @skip_for_tls
143143 @with_trio
144144 @with_bft_network (start_replica_cmd , selected_configs = lambda n , f , c : n == 7 )
@@ -301,7 +301,6 @@ async def write_req(num_req=1):
301301
302302
303303 # @unittest.skipIf(environ.get('BUILD_COMM_TCP_TLS', "").lower() == "true", "Unstable on CI (TCP/TLS only)")
304- @unittest .skip ("Disabled due to BC-6816" )
305304 @with_trio
306305 @with_bft_network (start_replica_cmd , selected_configs = lambda n , f , c : n == 7 )
307306 @with_constant_load
@@ -337,25 +336,26 @@ async def write_req():
337336 bft_network .stop_replica (late_replica )
338337
339338 for isolated_replica , views_to_advance in [(0 , 1 ), (1 , 2 )]:
340- with net .ReplicaSubsetTwoWayIsolatingAdversary (bft_network , {isolated_replica }) as adversary :
341- adversary .interfere ()
342- try :
343- client = bft_network .random_client ()
344- client .primary = None
345- for _ in range (5 ):
346- msg = skvbc .write_req (
347- [], [(skvbc .random_key (), skvbc .random_value ())], 0 )
348- await client .write (msg )
349- except :
350- pass
351-
352- # Wait for View Change initiation to happen
353- with trio .fail_after (60 ):
354- while True :
355- view_of_connected_replica = await self ._get_gauge (connected_replica , bft_network , "currentActiveView" )
356- if view_of_connected_replica == current_view + views_to_advance :
357- break
358- await trio .sleep (0.2 )
339+ bft_network .stop_replica (isolated_replica )
340+ try :
341+ client = bft_network .random_client ()
342+ client .primary = None
343+ for _ in range (5 ):
344+ msg = skvbc .write_req (
345+ [], [(skvbc .random_key (), skvbc .random_value ())], 0 )
346+ await client .write (msg )
347+ except :
348+ pass
349+
350+ # Wait for View Change initiation to happen
351+ with trio .fail_after (60 ):
352+ while True :
353+ view_of_connected_replica = await self ._get_gauge (connected_replica , bft_network , "currentActiveView" )
354+ if view_of_connected_replica == current_view + views_to_advance :
355+ break
356+ await trio .sleep (0.2 )
357+
358+ bft_network .start_replica (isolated_replica )
359359
360360 view = await bft_network .wait_for_view (
361361 replica_id = connected_replica ,
@@ -377,6 +377,7 @@ async def write_req():
377377 await bft_network .wait_for_fast_path_to_be_prevalent (
378378 run_ops = lambda : write_req (), threshold = num_req )
379379
380+ @unittest .skip ("Testing in CI/CD" )
380381 @with_trio
381382 @with_bft_network (start_replica_cmd , selected_configs = lambda n , f , c : n == 7 )
382383 @with_constant_load
@@ -625,6 +626,7 @@ async def test_f_minus_one_staggered_replicas_requesting_vc(self, bft_network, s
625626
626627 await self ._wait_for_replicas_to_generate_checkpoint (bft_network , skvbc , expected_next_primary , bft_network .all_replicas (without = {initial_primary }))
627628
629+ @unittest .skip ("Testing in CI/CD" )
628630 @skip_for_tls
629631 @with_trio
630632 @with_bft_network (start_replica_cmd_with_vc_timeout ("20000" ),
0 commit comments