diff options
| author | Gerhard Lazu <gerhard@lazu.co.uk> | 2021-08-31 16:58:44 +0100 |
|---|---|---|
| committer | Gerhard Lazu <gerhard@lazu.co.uk> | 2021-08-31 17:02:21 +0100 |
| commit | 6a1faa6fd677d69f0c4355a68cf6e680e78f173a (patch) | |
| tree | 954af3e95d1aa9922812f27d15231c7180e5cd25 | |
| parent | c240ec2985ecd78b674c242ebf5deaf485caf8ba (diff) | |
| download | rabbitmq-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.erl | 39 |
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) -> |
