[
https://issues.apache.org/jira/browse/AMQ-4889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13839065#comment-13839065
]
matteo rulli commented on AMQ-4889:
-----------------------------------
Actually, swapping the start method and the connections.add() in
setAcceptListener method in ProxyConnector turned out not to be a good idea.
The _connections.remove()_ in TransportFilter.stop may be called before the
connections.add() is invoked.
I appreciate this in the form of a tiny yet continous memory leakeage due to
objects accumulating in connections collection.
Therefore I modified again the ProxyConnector code to fix also this sort of
race condition: now I invoke the connections.add() _before_ invoking the start
but I manage the removal inside a try-catch block (see the updated
ProxyConnector_patch_AMQ_4889.txt patch)
Besides, I had to modify the equals method in ProxyConnection to avoid NPE in
case local or remote transorts are null. I updated the
ProxyConnection_patch_AMQ_4889.txt file with this fix.
I'm not completely satisfied with this ProxyConnection.equals() method, since
it seems a little bit awkward to me. I don't know, maybe you can suggest a
better strategy to purge the connections list.
> ProxyConnector memory usage skyrockets when several ssl handshakes fails
> ------------------------------------------------------------------------
>
> Key: AMQ-4889
> URL: https://issues.apache.org/jira/browse/AMQ-4889
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.8.0, 5.9.0
> Environment: Seen in Windows 7 64bit, Windows Server 2008 R2 and
> Linux RHEL 6.3 64 bit
> Reporter: matteo rulli
> Assignee: Timothy Bish
> Attachments: AMQ4889.patch, NIOSSLTransport_patch_AMQ_4889.txt,
> ProxyConnIssue.rar, ProxyConnection_patch_AMQ_4889.txt,
> ProxyConnector_patch_AMQ_4889.txt, after_lsof.txt, after_netstat.txt,
> lsof.txt, netstat.txt, sockstat.txt
>
>
> See
> [nabble|http://activemq.2283324.n4.nabble.com/Proxy-Connector-memory-consumption-td4674255.html]
> for further details.
> To reproduce the issue:
> # Start embedded proxy broker and the AMQ broker that are embedded in
> *AMQTestBroker* project (see attachments);
> # Start the *AMQTestConsumer* project; This program repeatedly tries opening
> a connection to the ProxyConnector with wrong certificates.
> # Open jconsole to monitor AMQTestBroker memory usage: you should experience
> an OOM error within one hour with the suggested settings (Xmx = 2048m).
> Launch configurations and test keystores are attached to this issue along
> with the java projects.
> This behavior seems to affect _ProxyConnector_ only, running the test against
> a standard nio-based _TransportConnector_ does not seem to produce anomalous
> memory consumptions.
--
This message was sent by Atlassian JIRA
(v6.1#6144)