summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerhard Lazu <gerhard@lazu.co.uk>2021-08-31 16:58:44 +0100
committerGerhard Lazu <gerhard@lazu.co.uk>2021-08-31 17:02:21 +0100
commit6a1faa6fd677d69f0c4355a68cf6e680e78f173a (patch)
tree954af3e95d1aa9922812f27d15231c7180e5cd25
parentc240ec2985ecd78b674c242ebf5deaf485caf8ba (diff)
downloadrabbitmq-server-git-6a1faa6fd677d69f0c4355a68cf6e680e78f173a.tar.gz
Keep checking that replica recovered in rabbit_stream_queue
Rather than sleeping for 6 seconds, we want to check that replica recovered multiple times within 30 seconds, and either eventually succeed, or fail if this does not recover within 30 seconds, the default await_condition time interval. Pair: @kjnilsson Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
-rw-r--r--deps/rabbit/test/rabbit_stream_queue_SUITE.erl39
1 files changed, 23 insertions, 16 deletions
diff --git a/deps/rabbit/test/rabbit_stream_queue_SUITE.erl b/deps/rabbit/test/rabbit_stream_queue_SUITE.erl
index b545b981c4..7b45b430b1 100644
--- a/deps/rabbit/test/rabbit_stream_queue_SUITE.erl
+++ b/deps/rabbit/test/rabbit_stream_queue_SUITE.erl
@@ -1443,29 +1443,36 @@ replica_recovery(Config) ->
publish_confirm(Ch1, Q, [<<"msg1">> || _ <- lists:seq(1, 100)]),
amqp_channel:close(Ch1),
+ CheckReplicaRecovered =
+ fun(DownNode) ->
+ rabbit_ct_helpers:await_condition(
+ fun () ->
+ timer:sleep(1000),
+ ct:pal("Wait for replica to recover..."),
+ try
+ {Conn, Ch2} = rabbit_ct_client_helpers:open_connection_and_channel(Config, DownNode),
+ qos(Ch2, 10, false),
+ subscribe(Ch2, Q, false, 0),
+ receive_batch(Ch2, 0, 99),
+ amqp_connection:close(Conn),
+ true
+ catch _:_ ->
+ false
+ end
+ end, 30000)
+ end,
+
[begin
- [DownNode | _] = PNodes,
rabbit_control_helper:command(stop_app, DownNode),
rabbit_control_helper:command(start_app, DownNode),
- timer:sleep(6000),
- Ch2 = rabbit_ct_client_helpers:open_channel(Config, DownNode),
- qos(Ch2, 10, false),
- subscribe(Ch2, Q, false, 0),
- receive_batch(Ch2, 0, 99),
- amqp_channel:close(Ch2)
- end || PNodes <- permute(Nodes)],
+ CheckReplicaRecovered(DownNode)
+ end || [DownNode | _] <- permute(Nodes)],
[begin
- [DownNode | _] = PNodes,
ok = rabbit_ct_broker_helpers:stop_node(Config, DownNode),
ok = rabbit_ct_broker_helpers:start_node(Config, DownNode),
- timer:sleep(6000),
- Ch2 = rabbit_ct_client_helpers:open_channel(Config, DownNode),
- qos(Ch2, 10, false),
- subscribe(Ch2, Q, false, 0),
- receive_batch(Ch2, 0, 99),
- amqp_channel:close(Ch2)
- end || PNodes <- permute(Nodes)],
+ CheckReplicaRecovered(DownNode)
+ end || [DownNode | _] <- permute(Nodes)],
rabbit_ct_broker_helpers:rpc(Config, 0, ?MODULE, delete_testcase_queue, [Q]).
leader_failover(Config) ->