From 0e3c0afacfb9a62cde0dd01a2e167d610763a9fc Mon Sep 17 00:00:00 2001 From: Michal Kuratczyk Date: Wed, 27 Nov 2024 21:17:52 +0100 Subject: [PATCH 1/3] Skip are_transient_nonexcl_used check on virin node This check fails on a virin node, because the metadata store is not yet ready to handle the query. However, a virin node by definition can't have any queues, so let's just return false without asking. (cherry picked from commit 1552f89dd7c473a3966406151631cc47c7646348) --- deps/rabbit/src/rabbit_amqqueue.erl | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/deps/rabbit/src/rabbit_amqqueue.erl b/deps/rabbit/src/rabbit_amqqueue.erl index 0e08514876bb..721fbc3f9efd 100644 --- a/deps/rabbit/src/rabbit_amqqueue.erl +++ b/deps/rabbit/src/rabbit_amqqueue.erl @@ -118,12 +118,19 @@ }}). are_transient_nonexcl_used(_) -> - case rabbit_db_queue:list_transient() of - {ok, Queues} -> - NonExclQueues = [Q || Q <- Queues, not is_exclusive(Q)], - length(NonExclQueues) > 0; - {error, _} -> - undefined + case rabbit_db:is_virgin_node() of + true -> + %% a virgin node can't have any queues and the check is performed before + %% metadata store is ready, so skip the query + false; + false -> + case rabbit_db_queue:list_transient() of + {ok, Queues} -> + NonExclQueues = [Q || Q <- Queues, not is_exclusive(Q)], + length(NonExclQueues) > 0; + {error, _} -> + undefined + end end. -define(CONSUMER_INFO_KEYS, From 46616b2ed2aca6fde8eb284376f1492db2c5ebe6 Mon Sep 17 00:00:00 2001 From: Michal Kuratczyk Date: Wed, 27 Nov 2024 21:41:17 +0100 Subject: [PATCH 2/3] Fix invalid warning about transient queues being used This fixes the issue where RabbitMQ would warn about transient queues being used in a cluster with no transient queues. Fixes https://github.com/rabbitmq/rabbitmq-server/issues/12802 (cherry picked from commit 46259b5a48afa3dc1688833f09f0a5e5fc0f0cb2) --- deps/rabbit/src/rabbit_db_queue.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/rabbit/src/rabbit_db_queue.erl b/deps/rabbit/src/rabbit_db_queue.erl index 542410fab2f3..fc408370ed88 100644 --- a/deps/rabbit/src/rabbit_db_queue.erl +++ b/deps/rabbit/src/rabbit_db_queue.erl @@ -985,7 +985,7 @@ list_transient() -> }). list_transient_in_mnesia() -> - Pattern = amqqueue:pattern_match_all(), + Pattern = amqqueue:pattern_match_on_durable(false), AllQueues = mnesia:dirty_match_object( ?MNESIA_TABLE, Pattern), From 6459e02582d4772d57e21ba4869090014212baa6 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Wed, 27 Nov 2024 18:26:34 -0500 Subject: [PATCH 3/3] check_certificate_expiration_command.ex: squash a compiler warning (cherry picked from commit d0b66b8c8f33af6e01a2f90c4f5359fb7bbcc87b) --- .../commands/check_certificate_expiration_command.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex index 89c65af29713..3623ca50878e 100644 --- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex +++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex @@ -77,7 +77,7 @@ defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckCertificateExpirationCommand do end def unit_label(1, unit) do - unit |> String.slice(0..-2) + unit |> String.slice(0..-2//-1) end def unit_label(_within, unit) do