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

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

Commit 1598658 from [~k-wall] in branch 'qpid/trunk'
[ https://svn.apache.org/r1598658 ]

QPID-5795: [Java Broker] Prevent ConnectionAdapter leak when closing a 
messaging connection

The leak was due to the fact that nothing was telling the virtualhost to 
unregister the connection child (#unregisterChild)
when the connection was closed.

* Made ConnectionAdapter responsible for causing its own deletion (when the 
underlying connection is closed).  The call to #deleted() causes the child
 to be unregistered from its parent (preventing the leak)
* Removed the now unnecessary _connectionAdapters map from the VH.  This 
needlessly duplicated information already held more generally by the ACO.
* Refactored SessionAdapter in sympathy with CA changes.  SessionsAdapters 
where _not_ being leaked as the session implementation were already telling the 
model to delete.

> Closing a connection leaks a ConnectionAdapter object
> -----------------------------------------------------
>
>                 Key: QPID-5795
>                 URL: https://issues.apache.org/jira/browse/QPID-5795
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.29
>            Reporter: Keith Wall
>            Assignee: Keith Wall
>
> We currently have a regression on trunk (0.29) whereby closure of a messaging 
> connection (any AMQP version) causes a ConnectionAdapter object to be leaked.
> On connection close (normal or otherwise), the code fails to arrange for the 
> reversal  of ACO#registerChild, therefore the maps ACO#_childrenByName etc 
> permanently retain the reference to the ConnectionAdapter.  The leak is large 
> because this causes the sizeable IO buffers to be retained too.
> This causes any long running test, that creates and closes many connections 
> over the lifetime of the Broker to run the risk of OOM.  This problem has 
> been noticed owning to the failure of the long running TCK test (which has 
> been failing with OOM).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to