summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2019-01-31 16:21:16 +0000
committerDiana Corbacho <diana@rabbitmq.com>2019-02-01 11:55:45 +0000
commit3fc685baf932ecbec69b2fa95dcd35b7e3aec3dd (patch)
treee18d00ffb05978a15a43159e5921b78f79bd99cb /src
parent6139d4257e7563db6373293e1a43aa2a8f3ea203 (diff)
downloadrabbitmq-server-git-3fc685baf932ecbec69b2fa95dcd35b7e3aec3dd.tar.gz
Reject quorum queue messages with reason maxlen on drop-head
As specified for RMQ ttl
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_fifo.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/rabbit_fifo.erl b/src/rabbit_fifo.erl
index 247085460e..ef98dc5f98 100644
--- a/src/rabbit_fifo.erl
+++ b/src/rabbit_fifo.erl
@@ -332,7 +332,7 @@ apply(Meta, #discard{msg_ids = MsgIds, consumer_id = ConsumerId},
case Cons0 of
#{ConsumerId := Con0} ->
Discarded = maps:with(MsgIds, Con0#consumer.checked_out),
- Effects = dead_letter_effects(Discarded, State0, []),
+ Effects = dead_letter_effects(rejected, Discarded, State0, []),
complete_and_checkout(Meta, MsgIds, ConsumerId, Con0,
Effects, State0);
_ ->
@@ -948,7 +948,7 @@ drop_head(#state{ra_indexes = Indexes0} = State0, Effects0) ->
Indexes = rabbit_fifo_index:delete(RaftIdxToDrop, Indexes0),
Bytes = message_size(Msg),
State = add_bytes_drop(Bytes, State1#state{ra_indexes = Indexes}),
- Effects = dead_letter_effects(maps:put(none, FullMsg, #{}),
+ Effects = dead_letter_effects(maxlen, maps:put(none, FullMsg, #{}),
State, Effects0),
{State, Effects};
{{'$prefix_msg', Bytes}, State1} ->
@@ -1099,15 +1099,15 @@ complete_and_checkout(#{index := IncomingRaftIdx} = Meta, MsgIds, ConsumerId,
% settle metrics are incremented separately
update_smallest_raft_index(IncomingRaftIdx, Indexes0, State, Effects).
-dead_letter_effects(_Discarded,
+dead_letter_effects(_Reason, _Discarded,
#state{dead_letter_handler = undefined},
Effects) ->
Effects;
-dead_letter_effects(Discarded,
+dead_letter_effects(Reason, Discarded,
#state{dead_letter_handler = {Mod, Fun, Args}}, Effects) ->
DeadLetters = maps:fold(fun(_, {_, {_, {_Header, Msg}}},
% MsgId, MsgIdID, RaftId, Header
- Acc) -> [{rejected, Msg} | Acc]
+ Acc) -> [{Reason, Msg} | Acc]
end, [], Discarded),
[{mod_call, Mod, Fun, Args ++ [DeadLetters]} | Effects].