You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Eugene Petrenko (JIRA)" <ji...@apache.org> on 2016/01/22 15:04:39 UTC
[jira] [Created] (SSHD-625) Use catch(Throwable) where possible to
avoid stopping performing queries and to log errors
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)