You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rob Godfrey (JIRA)" <ji...@apache.org> on 2015/05/05 18:10:00 UTC

[jira] [Resolved] (QPID-6528) 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

     [ https://issues.apache.org/jira/browse/QPID-6528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Godfrey resolved QPID-6528.
-------------------------------
       Resolution: Fixed
    Fix Version/s: 6.0 [Java]

> 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.22, 0.24, 0.26, 0.28, 0.30, 0.32
>            Reporter: Alex Rudyy
>             Fix For: 6.0 [Java]
>
>         Attachments: 0001-QPID-6528-Always-get-next-available-queue-entry-for-.patch
>
>
> 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org