summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2017-08-10 03:36:30 +0300
committerMichael Klishin <michael@clojurewerkz.org>2017-08-10 03:36:30 +0300
commit9e5599b3b9f7dc3887287bab487b21fa170b7fad (patch)
treee79fbea684d0634f48ed29dcc546af08314b2da8 /test
parentb9a09c712baa07ff85a9c954ffb4e36b95a1fc37 (diff)
parentec5ffe7296fbb883dccb35802d4bbcf8f2473e0d (diff)
downloadrabbitmq-server-git-9e5599b3b9f7dc3887287bab487b21fa170b7fad.tar.gz
Merge branch 'stable'
Conflicts: src/rabbit_amqqueue.erl
Diffstat (limited to 'test')
-rw-r--r--test/simple_ha_SUITE.erl18
1 files changed, 17 insertions, 1 deletions
diff --git a/test/simple_ha_SUITE.erl b/test/simple_ha_SUITE.erl
index b655c1c8cf..25d8a304e6 100644
--- a/test/simple_ha_SUITE.erl
+++ b/test/simple_ha_SUITE.erl
@@ -31,7 +31,8 @@ groups() ->
[
{cluster_size_2, [], [
rapid_redeclare,
- declare_synchrony
+ declare_synchrony,
+ clean_up_exclusive_queues
]},
{cluster_size_3, [], [
consume_survives_stop,
@@ -125,6 +126,21 @@ declare_synchrony(Config) ->
declare(Ch, Name) ->
amqp_channel:call(Ch, #'queue.declare'{durable = true, queue = Name}).
+%% Ensure that exclusive queues are cleaned up when part of ha cluster
+%% and node is killed abruptly then restarted
+clean_up_exclusive_queues(Config) ->
+ QName = <<"excl">>,
+ rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<".*">>, <<"all">>),
+ [A, B] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
+ ChA = rabbit_ct_client_helpers:open_channel(Config, A),
+ amqp_channel:call(ChA, #'queue.declare'{queue = QName,
+ exclusive = true}),
+ ok = rabbit_ct_broker_helpers:kill_node(Config, A),
+ [] = rabbit_ct_broker_helpers:rpc(Config, B, rabbit_amqqueue, list, []),
+ ok = rabbit_ct_broker_helpers:start_node(Config, A),
+ [[],[]] = rabbit_ct_broker_helpers:rpc_all(Config, rabbit_amqqueue, list, []),
+ ok.
+
consume_survives_stop(Cf) -> consume_survives(Cf, fun stop/2, true).
consume_survives_sigkill(Cf) -> consume_survives(Cf, fun sigkill/2, true).
consume_survives_policy(Cf) -> consume_survives(Cf, fun policy/2, true).