rabbitmq-server
rabbitmq-server copied to clipboard
3.13.0 - 3.13.2: Dead-letter cycle detection can wrongly drop messages
Describe the bug
As described in https://www.rabbitmq.com/docs/dlx#routing it is possible to form a cycle of message dead-lettering. The docs and the behaviour up to 3.12 are as follows:
Messages in such cycles (that is, messages that reach the same queue twice) are dropped if there was no rejection in the entire cycle.
However, in 3.13 messages can be dropped even if there is a rejection in the entire cycle.
Reproduction steps
Test case https://github.com/rabbitmq/rabbitmq-server/blob/46e1058f318a8312344bbdd9fa0d6e97f481c7a9/deps/rabbit/test/dead_lettering_SUITE.erl#L381-L437 shows a reproduction step.
Expected behavior
Messages in a cycle are only dropped if there was no rejection in the entire cycle.
Additional context
No response