-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Single Active Consumer on a quorum queue runs into an exception after multiple basic.get
s
#2164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Server logs, please. |
basic.get
s
A couple of things I see in the logs
|
Right well this is a bug. It fails because of how Quorum Queues implement basic get (as a single message consumer). With SAC enabled the second basic.get request isn't assigned a message as there is already a "consumer" from the previous request. The question is how it should work and what semantics make sense when using SAC and basic.get together. |
I think |
Some other team members agree that allowing |
As the title states, on a 3-node cluster if you define a quorum queue with the single active consumer option set then doing multiple BasicGet without ack/nacking the previous one will immediately cause the queue to go into a bad state. This doesn't happen in a normal quorum queue without single active consumer or if receiving messages by subscription. I haven't tested with a larger cluster yet, however I'm fairly confident this would continue to be an issue.
Environment:
Docker image: bitnami/rabbitmq:3.8.1-debian-9-r0
Reproducing
a. HTTP API using the management plugin (500 Internal Server Error)
b. AMQP using the C# RabbitMq.Client library
Afterwards 2 of the 3 nodes are removed from the 'Online' section, and since it can't reach a quorum with a single node then the queue becomes unusable. The nodes are still up and running fine with other quorum/classic-mirrored queues, however this queue never seems to recover.
The text was updated successfully, but these errors were encountered: