diff options
| author | Karl Nilsson <kjnilsson@gmail.com> | 2018-12-11 15:07:17 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-11 15:07:17 +0000 |
| commit | c80289849404a153f141ff96208abcd9c65f0153 (patch) | |
| tree | 07631b16d2953a196568d329d7b2b89ba7da5cb2 /test | |
| parent | 2eb31a5f39bc4d31b595db5674c93649bcda2844 (diff) | |
| parent | 7aea7f86b9eebd0036a2b1e9f092ac08d3cb2015 (diff) | |
| download | rabbitmq-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.erl | 29 |
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) -> |
