mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Petrenko (JIRA)" <j...@apache.org>
Subject [jira] [Created] (SSHD-625) Use catch(Throwable) where possible to avoid stopping performing queries and to log errors
Date Fri, 22 Jan 2016 14:04:39 GMT
Eugene Petrenko created SSHD-625:
------------------------------------

             Summary: Use catch(Throwable) where possible to avoid stopping performing queries
and to log errors
                 Key: SSHD-625
                 URL: https://issues.apache.org/jira/browse/SSHD-625
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 1.0.0
            Reporter: Eugene Petrenko


There are several places in library source where you catch Exception to log it. Not Throwable.
But it may easily turn out any some Error is thrown from user provided implementations.

Here is incorrect catch: * org.apache.sshd.server.config.keys.AuthorizedKeysAuthenticator#authenticate

There is no catch at all in 
* org.apache.sshd.server.auth.UserAuthKeyboardInteractive#doAuth
* org.apache.sshd.server.channel.ChannelSession#handleRequest

The problem is that once my code throws a Error (e.g. VerifyError or OOM) the error goes strait
into JVM internals without being explicitly logged. As a side effect of that SSHD server stops
functioning. Connections are accepted but not being processed.

My current workaround is to explicitly wrap all classes I implement with try/catch. I believe
it should be done inside the library to avoid everyone from writing similar try-catch. I believe
it's OK to forcibly close any connection once exception was caught and logged



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message