Repository navigation
Respond with basic.cancel-ok to the servers that support it (backport #2113) - #2114
Merged
Merged
Conversation
If the server advertises `basic.cancel-ok` response support. The background on this is this: starting with `4.3.0`, a delivery acknowledgement timeout does not result in the channel being closed but rather a `basic.cancel` sent to the client. Between about 2011 and 2026, clients never had the need to respond to such `basic.cancel` because it was originally a client method. Unfortunately, RabbitMQ versions between `4.3.0` and `4.3.6` only clean up the consumer after a `basic.cancel-ok` arrives but older versions cannot handle `basic.cancel-ok`, hence the new capability and the conditional confirmation. (cherry picked from commit 1c9a5c0) # Conflicts: # src/test/java/com/rabbitmq/client/test/ChannelNTest.java
(cherry picked from commit 5049c5c)
…ered client callback (cherry picked from commit 7004178)
(cherry picked from commit 07f413f)
(cherry picked from commit 8e09783)
Author
|
Cherry-pick of 1c9a5c0 has failed: To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
If the server advertises
basic.cancel-okresponse support.The background on this is this: starting with
4.3.0, a delivery acknowledgement timeout does not result in the channel being closed but rather abasic.cancelsent to the client.Between about 2011 and 2026, clients never had
the need to respond to such
basic.cancelbecause it was originally a client-sent methodand with consumer cancel notifications (an AMQP 0-9-1 extension), the client-sent confirmation was never required or expected.
Unfortunately, RabbitMQ versions between
4.3.0and
4.3.6only clean up the consumer aftera
basic.cancel-okarrives but older versionscannot handle
basic.cancel-ok, hence the newcapability and the conditional confirmation.
The Server Part of the Changes
See rabbitmq/rabbitmq-server#17734 for what's being
changed on the server to restore compatibility with older clients.
This is an automatic backport of pull request #2113 done by [Mergify](https://mergify.com).