Skip to content

Commit a474164

Browse files
authored
Merge pull request #16186 from rabbitmq/mergify/bp/v4.3.x/pr-16185
Fix consumer count for quorum queues in queue.declare (backport #16185)
2 parents 341fff9 + 9309116 commit a474164

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

deps/rabbit/src/rabbit_fifo_client.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ stat(Leader, Timeout) ->
579579
%% but we use it for backwards compatibilty
580580
case ra:member_overview(Leader, Timeout) of
581581
{ok, #{machine := #{num_ready_messages := R,
582-
num_checked_out := C}}, _} ->
582+
num_consumers := C}}, _} ->
583583
{ok, R, C};
584584
{error, _} = Error ->
585585
Error;

deps/rabbit/test/quorum_queue_SUITE.erl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ all_tests() ->
216216
consumer_priorities,
217217
cancel_consumer_gh_3729,
218218
cancel_consumer_gh_12424,
219+
queue_declare_passive_consumer_count,
219220
cancel_and_consume_with_same_tag,
220221
validate_messages_on_queue,
221222
amqpl_headers,
@@ -5242,6 +5243,30 @@ cancel_consumer_gh_12424(Config) ->
52425243

52435244
ok.
52445245

5246+
queue_declare_passive_consumer_count(Config) ->
5247+
QQ = ?config(queue_name, Config),
5248+
5249+
Server = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
5250+
Ch = rabbit_ct_client_helpers:open_channel(Config, Server),
5251+
5252+
ExpectedDeclareRslt0 = #'queue.declare_ok'{queue = QQ, message_count = 0, consumer_count = 0},
5253+
DeclareRslt0 = declare(Ch, QQ, [{<<"x-queue-type">>, longstr, <<"quorum">>}]),
5254+
?assertMatch(ExpectedDeclareRslt0, DeclareRslt0),
5255+
5256+
ok = subscribe(Ch, QQ, false),
5257+
5258+
ExpectedDeclareRslt1 = #'queue.declare_ok'{queue = QQ, message_count = 0, consumer_count = 1},
5259+
DeclareRslt1 = amqp_channel:call(Ch, #'queue.declare'{queue = QQ, passive = true}),
5260+
?assertMatch(ExpectedDeclareRslt1, DeclareRslt1),
5261+
5262+
ok = cancel(Ch),
5263+
5264+
ExpectedDeclareRslt2 = #'queue.declare_ok'{queue = QQ, message_count = 0, consumer_count = 0},
5265+
DeclareRslt2 = amqp_channel:call(Ch, #'queue.declare'{queue = QQ, passive = true}),
5266+
?assertMatch(ExpectedDeclareRslt2, DeclareRslt2),
5267+
5268+
ok.
5269+
52455270
%% Test the scenario where a message is published to a quorum queue
52465271
cancel_and_consume_with_same_tag(Config) ->
52475272
%% https://github.com/rabbitmq/rabbitmq-server/issues/5927

0 commit comments

Comments
 (0)