Alex Rudyy created QPID-6528:
--------------------------------

             Summary: Multiple starving suspended consumers on a single session 
might hold the reference to old deleted queue entry via 
QueueContext#_lastSeenEntry causing accumulation of deleted queue entries in 
Broker memory which can eventually lead to OOM
                 Key: QPID-6528
                 URL: https://issues.apache.org/jira/browse/QPID-6528
             Project: Qpid
          Issue Type: Improvement
          Components: Java Broker
    Affects Versions: 0.32, 0.30, 0.28, 0.26, 0.24, 0.22
            Reporter: Alex Rudyy


Broker might run into OOM due to holding a reference to an old deleted 
QueueEntry in QueueContext#_lastSeenEntry. The issue can occur with multiple 
consumers on a single session with a relatively ow prefetch. 

When session prefetch buffer becomes full, the flow is suspended, and 
subscription states are set to SUSPENDED. The delivery methods on AbstractQueue 
check whether subscription is not suspended(attempDelivery, 
consumerReadyAndJasInterest, processQueue, flushConsumer) before performing any 
delivery activity including _lastSeen update. Thus, message delivery does not 
happen for suspended subscriptions and _lastSeen field in Subscription context 
is not updated. Having many starving consumers on single session might cause 
accumulation of deleted queue entries and OOM




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to