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

jpalacios commented on SSHD-854:
--------------------------------

[~johnnyv],

Picking one at random it's referenced by 11 {{SelectorKeyImpl}} instances and 
one {{AbstractSelector$1}}. Then up the chain (which has a massive number of 
links) those {{SelectorKeyImpl}} instances all go all the way back to the 
{{CachingPublicKeyAuthenticator}}.

{code}
Thread -> ServerSessionImpl -> SshServer -> JohnsonAwarePublicKeyAuthenticator 
-> CachingPublicKeyAuthenticator -> ConcurrentHashMap -> 
ConcurrentHashMap$Node[] -> ConcurrentHashMap$Node -> ServerSessionImpl -> 
MinaSession -> NioSocketSession -> SelectionKeyImpl -> EpollSelectorImpl -> 
HashMap -> SelectionKeyImpl -> NioSocketSession -> ...
{code}

> Massive object graph in NioSocketSession
> ----------------------------------------
>
>                 Key: SSHD-854
>                 URL: https://issues.apache.org/jira/browse/SSHD-854
>             Project: MINA SSHD
>          Issue Type: Bug
>            Reporter: jpalacios
>            Priority: Major
>
> I'm looking at a heap dump from one of our customers where the retained heap 
> size for some {{NioSocketSession}} instances is almost 1GB.
> From the looks of the dump MINA has created a massive object graph where:
> {code}
> NioSocketSession -> SelectionKeyImpl -> EpollSelectorImpl -> HashMap -> 
> SelectionKeyImpl -> NioSocketSession -> ...
> {code}
> From the looks of the obeject IDs these are not loops
> Each individual object is not large by itself but at the top of the graph the 
> accumulated retained size is enough to produce an OOME
> Could you help me understand how MINA can produce such a massive object 
> graph? Should MINA apply any defense mechanism to prevent this??



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to