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

Keith Wall updated QPID-7783:
-----------------------------
    Description: 
If I close a virtualhost (either via management or owing to a change of HA 
mastership), the QBBs that hold message header and payload don't get released.  
The QBBs won't fall back into the  pool and the JVMs will have to reclaim the 
direct memory (which it does inefficiently).

On trunk, this causes the value returned by 
{{QBB.getNumberOfActivePooledBuffers()}} to be incorrect.   This value is used 
to determine when to flow to disk, to this would cause flow to disk to be more 
frequent than it needs.

This problem does exist on 6.0/6.1, but is not particular impactful.   The 
garbage collector will eventually collect the QBBs associated with the 
messages.  As the recovery paths uses heap byte buffers: messages recovered by 
it are not affected by this problem.


  was:
If I close a virtualhost (either via management or owing to a change of HA 
mastership), the QBBs that hold message header and payload don't get released.  
The QBBs won't fall back into the  pool and the JVMs will have to reclaim the 
direct memory (which it does inefficiently).

Furthermore on master QBB.getNumberOfActivePooledBuffers() will be incorrect 
and the will cause Qpid  to incorrectly calculate the amount of direct memory 
it uses.  This will cause it to flow to disk more than it needs.






> Closing a virtualhost does not dispose QBBs associated with messages on queues
> ------------------------------------------------------------------------------
>
>                 Key: QPID-7783
>                 URL: https://issues.apache.org/jira/browse/QPID-7783
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: qpid-java-6.0, qpid-java-6.0.6, qpid-java-6.1, 
> qpid-java-6.1.2
>            Reporter: Keith Wall
>             Fix For: qpid-java-broker-7.0.0
>
>
> If I close a virtualhost (either via management or owing to a change of HA 
> mastership), the QBBs that hold message header and payload don't get 
> released.  The QBBs won't fall back into the  pool and the JVMs will have to 
> reclaim the direct memory (which it does inefficiently).
> On trunk, this causes the value returned by 
> {{QBB.getNumberOfActivePooledBuffers()}} to be incorrect.   This value is 
> used to determine when to flow to disk, to this would cause flow to disk to 
> be more frequent than it needs.
> This problem does exist on 6.0/6.1, but is not particular impactful.   The 
> garbage collector will eventually collect the QBBs associated with the 
> messages.  As the recovery paths uses heap byte buffers: messages recovered 
> by it are not affected by this problem.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to