qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (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
Date Tue, 05 May 2015 15:45:00 GMT

    [ https://issues.apache.org/jira/browse/QPID-6528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14528687#comment-14528687
] 

ASF subversion and git services commented on QPID-6528:
-------------------------------------------------------

Commit 1677842 from orudyy@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1677842 ]

QPID-6528: Always get next available queue entry for the subscription first even if it is
suspended in order to update _lastSeen entry and prevent holding a reference to an old deleted
queue entry

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


Mime
View raw message