Skip to content

Unable to detect link detach (session lock lost) in message settlement in service bus #183

@yunhaoling

Description

@yunhaoling

In service bus, when a sessionful entity's lock expired, the service would send a detach frame indicating the session lock is lost.
However, in uamqp settlement calling, we don't receive and handle amqp frames which means we're unable to detect whether these is a session lock lost, and we send the disposition frame out which would fail silently.

On the other side, even if we do connection.work before sending out the disposition frame and try to get the link detach frame. There is an edge case that when we drain the messages on the session queue, we still cannot receive the detach frame. In this case, the error condition might come up with the disposition outcome which is another feature we're missing, see issue:
Azure/azure-uamqp-c#274

It seems like there're two pattern in the service to bubble session lock lost error to the client:

  1. send a detach
  2. via message settlement disposition result

To tackle the issue, we would first need to add the missing disposition outcome feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions