summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Hoguin <lhoguin@vmware.com>2021-09-13 10:59:30 +0200
committerLoïc Hoguin <lhoguin@vmware.com>2021-09-13 10:59:30 +0200
commit09c8cd4f98a0800fba9c1945aefa2e766c1879b6 (patch)
tree3006df1e617af0f10a702b0f1d56f3950d04f902
parent8cc9806f07095ea8d0edadd18db5959407eb8993 (diff)
downloadrabbitmq-server-git-09c8cd4f98a0800fba9c1945aefa2e766c1879b6.tar.gz
Increase classic queue shutdown timeout
A value that is too low will prevent the index from shutting down in time when there are many queues. This leads to the process being killed and on the next RabbitMQ restart a (potentially very long) dirty recovery is needed. The value of 10 minutes was chosen to mirror the shutdown timeout of the message store. Since both queues and message store need to have shut down gracefully in order to have a clean restart it makes sense to use the same value. Related: c40c2628a928204c1b504f53690ac790d639a420
-rw-r--r--deps/rabbit/src/rabbit_amqqueue_sup.erl4
-rw-r--r--deps/rabbit_common/include/rabbit.hrl4
2 files changed, 5 insertions, 3 deletions
diff --git a/deps/rabbit/src/rabbit_amqqueue_sup.erl b/deps/rabbit/src/rabbit_amqqueue_sup.erl
index 5765112194..421af337a7 100644
--- a/deps/rabbit/src/rabbit_amqqueue_sup.erl
+++ b/deps/rabbit/src/rabbit_amqqueue_sup.erl
@@ -24,8 +24,8 @@ start_link(Q, StartMode) ->
Marker = spawn_link(fun() -> receive stop -> ok end end),
ChildSpec = {rabbit_amqqueue,
{rabbit_prequeue, start_link, [Q, StartMode, Marker]},
- intrinsic, ?WORKER_WAIT, worker, [rabbit_amqqueue_process,
- rabbit_mirror_queue_slave]},
+ intrinsic, ?CLASSIC_QUEUE_WORKER_WAIT, worker,
+ [rabbit_amqqueue_process, rabbit_mirror_queue_slave]},
{ok, SupPid} = supervisor2:start_link(?MODULE, []),
{ok, QPid} = supervisor2:start_child(SupPid, ChildSpec),
unlink(Marker),
diff --git a/deps/rabbit_common/include/rabbit.hrl b/deps/rabbit_common/include/rabbit.hrl
index 8f44046994..1fb3d4e6ea 100644
--- a/deps/rabbit_common/include/rabbit.hrl
+++ b/deps/rabbit_common/include/rabbit.hrl
@@ -225,9 +225,11 @@
-define(SUPERVISOR_WAIT,
rabbit_misc:get_env(rabbit, supervisor_shutdown_timeout, infinity)).
-define(WORKER_WAIT,
- rabbit_misc:get_env(rabbit, worker_shutdown_timeout, 30000)).
+ rabbit_misc:get_env(rabbit, worker_shutdown_timeout, 300000)).
-define(MSG_STORE_WORKER_WAIT,
rabbit_misc:get_env(rabbit, msg_store_shutdown_timeout, 600000)).
+-define(CLASSIC_QUEUE_WORKER_WAIT,
+ rabbit_misc:get_env(rabbit, classic_queue_shutdown_timeout, 600000)).
-define(HIBERNATE_AFTER_MIN, 1000).
-define(DESIRED_HIBERNATE, 10000).