[rabbitmq-discuss] Unknown delivery tag
mgg at giagnocavo.net
Thu Feb 6 03:44:15 GMT 2014
We're using the .NET client with QueueingBasicConsumer. Rabbit 3.2.2, ErlangR16B03.
Now and then our consumer crashes with an exception like this (printed by the RabbitMQ client library to the console, apparently):
Unhandled Exception: RabbitMQ.Client.Exceptions.OperationInterruptedException: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=406, text="PRECONDITION_FAILED - unknown delivery tag 995139", classId=60, methodId=80, cause=
at RabbitMQ.Client.Impl.ModelBase.ModelRpc(MethodBase method, ContentHeaderBase header, Byte body)
As I understand, this means that we ack'd a tag that the server didn't recognize, correct? Are delivery tags guaranteed to be monotonically increasing? We have a prefetch of 2000 and do multiple tag acks. We call dequeue in a loop until we have 500 messages or timeout (1 second) on dequeue. We even have code after each dequeue that fails the process if our maxTag var is greater than the current message's delivery tag.
Could it be that we're dequeueing a message with a high delivery tag, then next time we get one with a lower delivery tag and hence it's unknown to the server since we already ack'd and committed?
Any other suggestions?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss