summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKarl Nilsson <kjnilsson@gmail.com>2018-12-11 15:07:17 +0000
committerGitHub <noreply@github.com>2018-12-11 15:07:17 +0000
commitc80289849404a153f141ff96208abcd9c65f0153 (patch)
tree07631b16d2953a196568d329d7b2b89ba7da5cb2 /test
parent2eb31a5f39bc4d31b595db5674c93649bcda2844 (diff)
parent7aea7f86b9eebd0036a2b1e9f092ac08d3cb2015 (diff)
downloadrabbitmq-server-git-c80289849404a153f141ff96208abcd9c65f0153.tar.gz
Merge pull request #1791 from rabbitmq/wal-roll-over
Roll wal on memory alarm
Diffstat (limited to 'test')
-rw-r--r--test/quorum_queue_SUITE.erl29
1 files changed, 27 insertions, 2 deletions
diff --git a/test/quorum_queue_SUITE.erl b/test/quorum_queue_SUITE.erl
index 4190903409..5b87c5be20 100644
--- a/test/quorum_queue_SUITE.erl
+++ b/test/quorum_queue_SUITE.erl
@@ -119,7 +119,8 @@ all_tests() ->
delete_immediately,
delete_immediately_by_resource,
consume_redelivery_count,
- subscribe_redelivery_count
+ subscribe_redelivery_count,
+ memory_alarm_rolls_wal
].
%% -------------------------------------------------------------------
@@ -205,7 +206,10 @@ init_per_testcase(Testcase, Config) ->
rabbit_ct_helpers:run_steps(Config2, rabbit_ct_client_helpers:setup_steps()).
merge_app_env(Config) ->
- rabbit_ct_helpers:merge_app_env(Config, {rabbit, [{core_metrics_gc_interval, 100}]}).
+ rabbit_ct_helpers:merge_app_env(
+ rabbit_ct_helpers:merge_app_env(Config,
+ {rabbit, [{core_metrics_gc_interval, 100}]}),
+ {ra, [{min_wal_roll_over_interval, 30000}]}).
end_per_testcase(Testcase, Config) when Testcase == reconnect_consumer_and_publish;
Testcase == reconnect_consumer_and_wait;
@@ -2044,6 +2048,27 @@ consume_redelivery_count(Config) ->
multiple = false,
requeue = true}).
+memory_alarm_rolls_wal(Config) ->
+ [Server | _] = Servers = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
+ Ch = rabbit_ct_client_helpers:open_channel(Config, Server),
+ QQ = ?config(queue_name, Config),
+ ?assertEqual({'queue.declare_ok', QQ, 0, 0},
+ declare(Ch, QQ, [{<<"x-queue-type">>, longstr, <<"quorum">>}])),
+ WalDataDir = rpc:call(Server, ra_env, wal_data_dir, []),
+ [Wal0] = filelib:wildcard(WalDataDir ++ "/*.wal"),
+ ok = rpc:call(Server, rabbit_alarm, set_alarm,
+ [{{resource_limit, memory, Server}, []}]),
+ timer:sleep(1000),
+ [Wal1] = filelib:wildcard(WalDataDir ++ "/*.wal"),
+ ?assert(Wal0 =/= Wal1),
+ %% roll over shouldn't happen if we trigger a new alarm in less than
+ %% min_wal_roll_over_interval
+ ok = rpc:call(Server, rabbit_alarm, set_alarm,
+ [{{resource_limit, memory, Server}, []}]),
+ timer:sleep(1000),
+ [Wal2] = filelib:wildcard(WalDataDir ++ "/*.wal"),
+ ?assert(Wal1 == Wal2).
+
%%----------------------------------------------------------------------------
declare(Ch, Q) ->