-
Notifications
You must be signed in to change notification settings - Fork 584
When recovery is enabled more deliveries can be acked after recovery than the user expects #395
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
So what’s the proposed solution? However imperfect, this versioning feature has worked quite well for a number of years. |
@acogoluegnes do you have an opinion? |
See pull request #397 |
@acogoluegnes I assume this can go into |
@michaelklishin Yes, it can. We may have to release another RCs for 5.4.0 and 4.8.0, but we can also fit #398 in them. |
@michaelklishin I cannot find a 4.8.x version that contains this fix? |
@caspermout Looks like it didn't make it to |
Didn't make it to |
Thank you |
Thanks! |
Hi! |
There were multiple 5.x releases since October 2018. |
There were multiple 5.x releases since October 2018. 2e6bf27 was cherry-picked to |
So 1a8ffed is available as of |
I found the following code in the class RecoveryAwareChannelN:
When activeDeliveryTagOffset and deliveryTag are the same (this can happen directly after a channel is reconnected/recovered) this method will ack all outstanding messages instead of acking nothing.
The output of the attached sample application contains PRECONDITION_FAILED - unknown delivery tag 1 because it is trying to ack all messages. But it was already acked by acking the first message after connection recovery.
example-output.txt
TestRabbitRecover.txt
RabbitMQ version
3.6.15
Erlang version
Erlang 19.3.6.7
Client library version (for all libraries used)
com.rabbitmq/amqp-client/4.5.0
The text was updated successfully, but these errors were encountered: