Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-1566

Queues backing non-durable subscriptions accumulate after ungraceful connection close when Qpid Dispatch used as intermediary

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • AMQ 7.3.0.GA
    • None
    • None
    • None

      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):

      [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]
      

            rh-ee-ataylor Andy Taylor
            keithbwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: