Skip to content

AMQP 1.0, figure 2.33: refuse link instead of terminating the entire session #14389

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ansd
Copy link
Member

@ansd ansd commented Aug 15, 2025

What?

Refuse or detach the link instead of ending the session.

Why?

Because many errors are scoped to a single terminus, detaching just that link
preserves the rest of the session’s links - avoiding needless disruption of
other traffic. AMQP's error model is hierarchical; RabbitMQ should escalate to
ending the session only for session-level faults or if the client keeps
using a destroyed link.

How?

Refuse link as per figure 2.33

@ansd ansd self-assigned this Aug 15, 2025
@ansd ansd force-pushed the refuse-link branch 3 times, most recently from 37701dc to 7992976 Compare August 15, 2025 12:49
 ## What?
Refuse or detach the link instead of ending the session.

 ## Why?
Because many errors are scoped to a single terminus, detaching just that link
preserves the rest of the session’s links - avoiding needless disruption of
other traffic. AMQP 1.0’s error model is hierarchical; RabbitMQ should escalate to
ending the session only for session-level faults or if the client keeps
using a destroyed link.

 ## How?
Refuse link as per figure 2.33

TODO:
* Convert more session-level errors to link-level errors
acogoluegnes added a commit to rabbitmq/rabbitmq-amqp-java-client that referenced this pull request Aug 18, 2025
acogoluegnes added a commit to rabbitmq/rabbitmq-amqp-java-client that referenced this pull request Aug 18, 2025
@michaelklishin michaelklishin changed the title Refuse link AMQP 1.0, figure 2.33: refuse link instead of terminating the entire session Aug 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant