David Ansari 2025-03-27 10:20:45 +01:00 committed by David Ansari
parent ef1a595a13
commit c151806f7c
3 changed files with 29 additions and 30 deletions

View File

@ -1354,8 +1354,7 @@ handle_method(#'basic.consume'{queue = QueueNameBin,
CurrentConsumers = maps:size(ConsumerMapping),
case maps:find(ConsumerTag, ConsumerMapping) of
error when CurrentConsumers >= MaxConsumers -> % false when MaxConsumers is 'infinity'
rabbit_misc:protocol_error(
not_allowed,
rabbit_misc:protocol_error(not_allowed,
"reached maximum (~B) of consumers per channel",
[MaxConsumers]);
error ->
@ -1368,13 +1367,13 @@ handle_method(#'basic.consume'{queue = QueueNameBin,
_ ->
ConsumerTag
end,
basic_consume(
QueueName, NoAck, ConsumerPrefetch, ActualTag,
basic_consume(QueueName, NoAck, ConsumerPrefetch, ActualTag,
ExclusiveConsume, Args, NoWait, State);
{ok, _} ->
%% Attempted reuse of consumer tag.
rabbit_misc:protocol_error(
not_allowed, "attempt to reuse consumer tag '~ts'", [ConsumerTag])
rabbit_misc:protocol_error(not_allowed,
"attempt to reuse consumer tag '~ts'",
[ConsumerTag])
end;
handle_method(#'basic.cancel'{consumer_tag = ConsumerTag, nowait = NoWait},

View File

@ -522,7 +522,7 @@ consume(Q, Spec, State) ->
case Mod:consume(Q, Spec, CtxState0) of
{ok, CtxState} ->
{ok, set_ctx(Q, Ctx#ctx{state = CtxState}, State)};
Err = {error, _Type, _Fmt, _FmtArgs} ->
{error, _Type, _Fmt, _FmtArgs} = Err->
Err
end.

View File

@ -1010,8 +1010,7 @@ consume(Q, Spec, QState0) when ?amqqueue_is_quorum(Q) ->
args => Args,
username => ActingUser,
priority => Priority},
case rabbit_fifo_client:checkout(
ConsumerTag, Mode, ConsumerMeta, QState0) of
case rabbit_fifo_client:checkout(ConsumerTag, Mode, ConsumerMeta, QState0) of
{ok, _Infos, QState} ->
case single_active_consumer_on(Q) of
true ->
@ -1024,27 +1023,28 @@ consume(Q, Spec, QState0) when ?amqqueue_is_quorum(Q) ->
_ ->
waiting
end,
rabbit_core_metrics:consumer_created(
ChPid, ConsumerTag, ExclusiveConsume,
rabbit_core_metrics:consumer_created(ChPid, ConsumerTag,
ExclusiveConsume,
AckRequired, QName,
Prefetch, ActivityStatus == single_active, %% Active
Prefetch,
ActivityStatus == single_active,
ActivityStatus, Args),
emit_consumer_created(
ChPid, ConsumerTag, ExclusiveConsume,
AckRequired, QName, Prefetch,
Args, none, ActingUser),
emit_consumer_created(ChPid, ConsumerTag,
ExclusiveConsume,
AckRequired, QName,
Prefetch, Args, none,
ActingUser),
{ok, QState};
Err ->
consume_error(Err, QName)
end;
false ->
rabbit_core_metrics:consumer_created(
ChPid, ConsumerTag, ExclusiveConsume,
rabbit_core_metrics:consumer_created(ChPid, ConsumerTag,
ExclusiveConsume,
AckRequired, QName,
Prefetch, true, %% Active
Prefetch, true,
up, Args),
emit_consumer_created(
ChPid, ConsumerTag, ExclusiveConsume,
emit_consumer_created(ChPid, ConsumerTag, ExclusiveConsume,
AckRequired, QName, Prefetch,
Args, none, ActingUser),
{ok, QState}