[
https://issues.apache.org/jira/browse/SSHD-625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15114997#comment-15114997
]
Goldstein Lyor commented on SSHD-625:
-------------------------------------
Good - I am working on adding some try-catch(es) and/or relaxing the catch from
_Exception_ to _Throwable_ where it seems appropriate. _Error_(s) usually
denote a totally unexpected condition and I agree that some effort should be
made to ensure that the code recovers from them - if only by logging them.
However, I am doing this "relaxation" only in places where a warning is issued
or where user code is invoked (e.g., _PasswordAuthenticator#authenticate_). I
do not feel comfortable catching _Throwable_(s) throughout the entire code and
just logging them in DEBUG level since they can easily get overlooked.
> 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
> Assignee: Goldstein Lyor
> Priority: Minor
>
> 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)