Open luos opened 1 year ago
Thanks for providing an executable way to reproduce and digging in.
The AMQP 0-9-1 spec does not cover additions such as x-overflow
. When set to reject-publish
explicitly, I agree with your analysis.
reject-publish
with quorum queues is documented to be subject to overflows. That said tx should handle case 2 better.
Describe the bug
Hi,
We were testing Quorum Queues with transactions, max-length, reject-publish. We've seen two unexpected behaviours. We think it is present on all versions.
Reproduction steps
max-length = 5
x-overflow = reject-publish
5
.Expected behavior
Additional context
The probably cause of the second issue is the unconditional overwrite of the tx state to
committing
afterhandle_queue_actions
:https://github.com/rabbitmq/rabbitmq-server/blob/cee35f7cd2369f1063f421c704c74476d7792462/deps/rabbit/src/rabbit_channel.erl#L1717-L1719
Even though
handle_queue_actions
can set thetx
state to be failed.Reproduction as code: