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
Somehow Channel.QueueDeclare "exclusive" and "durable" flags are mutually infuenced #373
Comments
See Declaration property equivalence in the Queues guide. |
I understand you may get tens complains like this every week, but i can assure you I've read the docs. The problem not in an error itself or its code, but in error message, which is misleading. It says I must set |
Update: I've checked the package's source and can see now it's a problem on a RabbitMQ side, sorry. Case closed here. |
@SergeAx - rabbitmq/rabbitmq-server#1887 Basically, the presence of "exclusive" negates the durable argument, but durable is checked first. I'm fixing it now. Thanks for the code to reproduce the issue. |
@SergeAx apologies, I didn't spot the combination of properties you were using. Indeed most such questions come from complete beginners so I used a canned response. |
See streadway/amqp#373 and rabbitmq/rabbitmq-server#1887 for background.
Here is a minimal example:
Using:
As you can see, in this example I am trying to recreate same queue twice, first with
exclusive:true
, then withexclusive:false
. It fails as expected, but produces unexpected error message:Exception (406) Reason: "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'test_qqq' in vhost '/': received 'false' but current is 'true'"
I spent half an hour looking blankly at my
durable: true
statement, but actually should be looking intoexclusive
argument. Is there a way to keep future users from such a loss of time? It should be likeargs 'durable' and 'exclusive' are in conflict with each other
. Or is it RabbitMQ problem?The text was updated successfully, but these errors were encountered: