summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2020-04-07 05:52:31 +0300
committerGitHub <noreply@github.com>2020-04-07 05:52:31 +0300
commitb5b6254ca087b45a1bacfe22fc00bea36dd5684a (patch)
tree88f0782758700d9d2e734f67fc0b75899621c737 /test
parent02b2343566cd76197af7e01d80e0acad7bdb0fc6 (diff)
parentd08779efacb1879d0cd783eee32d25da694bd3d2 (diff)
downloadrabbitmq-server-git-b5b6254ca087b45a1bacfe22fc00bea36dd5684a.tar.gz
Merge pull request #2303 from rabbitmq/handle-deadlocks-in-peer_discovery_classic_config_SUITE
peer_discovery_classic_config_SUITE: Handle dead-locks
Diffstat (limited to 'test')
-rw-r--r--test/peer_discovery_classic_config_SUITE.erl27
1 files changed, 20 insertions, 7 deletions
diff --git a/test/peer_discovery_classic_config_SUITE.erl b/test/peer_discovery_classic_config_SUITE.erl
index d1c79ec923..00f362d48c 100644
--- a/test/peer_discovery_classic_config_SUITE.erl
+++ b/test/peer_discovery_classic_config_SUITE.erl
@@ -21,8 +21,7 @@
-include_lib("eunit/include/eunit.hrl").
-import(rabbit_ct_broker_helpers, [
- stop_node/2, reset_node/1, start_node/2,
- rewrite_node_config_file/2, cluster_members_online/2
+ cluster_members_online/2
]).
-compile(export_all).
@@ -154,22 +153,36 @@ end_per_testcase(Testcase, Config) ->
%%
%% Test cases
%%
-
successful_discovery(Config) ->
Condition = fun() ->
3 =:= length(cluster_members_online(Config, 0)) andalso
3 =:= length(cluster_members_online(Config, 1))
end,
- rabbit_ct_helpers:await_condition(Condition, 90000).
+ await_cluster(Config, Condition, [1, 2]).
successful_discovery_with_a_subset_of_nodes_coming_online(Config) ->
Condition = fun() ->
2 =:= length(cluster_members_online(Config, 0)) andalso
2 =:= length(cluster_members_online(Config, 1))
end,
- rabbit_ct_helpers:await_condition(Condition, 90000).
+ await_cluster(Config, Condition, [1]).
no_nodes_configured(Config) ->
Condition = fun() -> length(cluster_members_online(Config, 0)) < 2 end,
- rabbit_ct_helpers:await_condition(Condition, 10000).
-
+ await_cluster(Config, Condition, [1]).
+
+reset_and_restart_node(Config, I) when is_integer(I) andalso I >= 0 ->
+ Name = rabbit_ct_broker_helpers:get_node_config(Config, I, nodename),
+ rabbit_control_helper:command(stop_app, Name),
+ rabbit_ct_broker_helpers:reset_node(Config, Name),
+ rabbit_control_helper:command(start_app, Name).
+
+await_cluster(Config, Condition, Nodes) ->
+ try
+ rabbit_ct_helpers:await_condition(Condition, 30000)
+ catch
+ exit:{test_case_failed, _} ->
+ ct:pal(?LOW_IMPORTANCE, "Possible dead-lock; resetting/restarting these nodes: ~p", [Nodes]),
+ [reset_and_restart_node(Config, N) || N <- Nodes],
+ rabbit_ct_helpers:await_condition(Condition, 30000)
+ end.