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

Robbie Gemmell updated QPID-3157:
---------------------------------

    Description: 
subscriptions 'removed' from a queue subscription list are only marked deleted 
and not actually released from memory. As a result any memory in use by the 
now-closed subscription will not be released until the queue is deleted. This 
also holds the ServerSession in memory.

This issue compounded when the queue has a backlog of messages and consumers 
are created, used to recieve one message, and then closed. In this scenario the 
broker sends the client as many messages as it can prefetch, leading to 
creation of up to <prefetch size, default=500> MessageTransfer commands, all 
which are recorded in the ServerSession but then left retained as 'unprocessed' 
in the closed session. This results in an explosion in the number of 
MessageTransfer commands retained in memory as each message can have up to 
<prefetch size> MessageTransfer commands associated with it before it is 
eventually consumed by a client and all of thse will also be retained in 
memory. The last effect can be combated by restricting the preftech size (eg 
appending &maxprefetch='1' to the connection url).

  was:subscriptions 'removed' from a queue subscription list are only marked 
deleted and not actually released from memory. As a reult any memory in use by 
the now-closed subscription will not be released until the queue is deleted.

       Priority: Blocker  (was: Critical)

> subscriptions 'removed' from a queue subscription list are only marked 
> deleted and not actually completely removed from the list
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3157
>                 URL: https://issues.apache.org/jira/browse/QPID-3157
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.5, 0.6, 0.7, 0.8, 0.9, 0.10
>            Reporter: Robbie Gemmell
>            Priority: Blocker
>             Fix For: 0.11
>
>
> subscriptions 'removed' from a queue subscription list are only marked 
> deleted and not actually released from memory. As a result any memory in use 
> by the now-closed subscription will not be released until the queue is 
> deleted. This also holds the ServerSession in memory.
> This issue compounded when the queue has a backlog of messages and consumers 
> are created, used to recieve one message, and then closed. In this scenario 
> the broker sends the client as many messages as it can prefetch, leading to 
> creation of up to <prefetch size, default=500> MessageTransfer commands, all 
> which are recorded in the ServerSession but then left retained as 
> 'unprocessed' in the closed session. This results in an explosion in the 
> number of MessageTransfer commands retained in memory as each message can 
> have up to <prefetch size> MessageTransfer commands associated with it before 
> it is eventually consumed by a client and all of thse will also be retained 
> in memory. The last effect can be combated by restricting the preftech size 
> (eg appending &maxprefetch='1' to the connection url).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to