mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SSHD-854) Massive object graph in NioSocketSession
Date Fri, 26 Oct 2018 07:50:00 GMT

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

Emmanuel Lecharny commented on SSHD-854:
----------------------------------------

Clearly, the {{sessionClosed()}} method from the {{CachingPublicKeyAuthenticator}} class is
not being called, otherwise the session would have been removed from the cache :

{code:java}
    @Override
    public void sessionClosed(Session session) {
        Map<PublicKey, Boolean> map = cache.remove(session);  <----------------------------------Here
        if (map == null) {
            if (log.isDebugEnabled()) {
                log.debug("sessionClosed({}) not cached", session);
            }
        } else {
            if (log.isDebugEnabled()) {
                log.debug("sessionClosed({}) removed from cache", session);
            }
        }
        session.removeSessionListener(this);   
    }
{code}


Guillaume, Lyor, a hint ?

> 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)

Mime
View raw message