Skip to content

Commit 122ed2c

Browse files
committed
queue: improve is_duplicate duplication logic
Check if the message is a duplicate only when the backing queue `is_duplicate` returns false. Otherwise, we might cache headers belonging to duplicate messages generated internally by the broker. This would, at least, pollute the cache hit statistics. Signed-off-by: Matteo Cafasso <[email protected]>
1 parent 046a36a commit 122ed2c

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

lib/rabbit_message_deduplication_queue.ex

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -372,11 +372,9 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Queue do
372372
end
373373

374374
def is_duplicate(message, state = dqstate(queue: queue, queue_state: qs)) do
375-
duplicate = duplicate?(queue, message)
376-
377375
case passthrough2(state, do: is_duplicate(message, qs)) do
378376
{true, state} -> {true, state}
379-
{false, state} -> {duplicate, state}
377+
{false, state} -> {duplicate?(queue, message), state}
380378
end
381379
end
382380

0 commit comments

Comments
 (0)