Keith Wall created ARTEMIS-1893:
-----------------------------------
Summary: subscription queues for non-durable subscriptions are not
deleted when AMQP links are detached
Key: ARTEMIS-1893
URL: https://issues.apache.org/jira/browse/ARTEMIS-1893
Project: ActiveMQ Artemis
Issue Type: Bug
Affects Versions: 2.5.0
Reporter: Keith Wall
If an AMQP 1.0 peer attaches a link that will expire on {{link-detach}}, and
then later detaches the link with a {{closed=false}}, as it makes no sense for
the link ever to be attached again, the Broker ought to treat this as if
{{closed=true}} and free any resources associated with the link and respond
with a {{detach closed=true}}. This currently does not happen.
This defect was exposed when testing EnMasse (with a standard address space).
The application (using the Qpid JMS Client) had created non-durable topic
subscriptions and was then disconnected ungracefully. The queues backing the
subscription were seen to leak on the Broker.
The protocol trace between Qpid Dispatch and the Broker follows ({{->}} =
Dispatch to Broker):
{noformat}
[0x7f6acc051b10]:4 -> @attach(18)
[name="qpid-jms:receiver:ID:ac75e7c3-e850-4a23-bb4f-4220dffa1dac:1:1:1:footopic2",
handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40)
[address="footopic2", durable=0, expiry-policy=:"link-detach", timeout=0,
dynamic=false, outcomes=@PN_SYMBOL[:"amqp:accepted:list",
:"amqp:rejected:list", :"amqp:released:list", :"amqp:modified:list"],
capabilities=@PN_SYMBOL[:topic]], target=@target(41) [durable=0, timeout=0,
dynamic=false], initial-delivery-count=0, max-message-size=0]
[0x7f6acc051b10]:4 <- @attach(18)
[name="qpid-jms:receiver:ID:ac75e7c3-e850-4a23-bb4f-4220dffa1dac:1:1:1:footopic2",
handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40)
[address="footopic2", durable=0, expiry-policy=:"link-detach", timeout=0,
dynamic=false, outcomes=@PN_SYMBOL[:"amqp:accepted:list",
:"amqp:rejected:list", :"amqp:released:list", :"amqp:modified:list"],
capabilities=@PN_SYMBOL[:topic]], target=@target(41) [durable=0, timeout=0,
dynamic=false], initial-delivery-count=0, max-message-size=0]
[0x7f6acc051b10]:4 -> @detach(22) [handle=0, closed=false, error=@error(29)
[condition=:"qd:routed-link-lost", description="Connectivity to the peer
container was lost"]]
[0x7f6acc051b10]:4 <- @detach(22) [handle=0, closed=false]
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)