mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maarten Smit (JIRA)" <j...@apache.org>
Subject [jira] [Created] (SSHD-188) Session timeout doesn't call destroy() from InvertedShell
Date Tue, 18 Sep 2012 13:48:07 GMT
Maarten Smit created SSHD-188:

             Summary: Session timeout doesn't call destroy() from InvertedShell
                 Key: SSHD-188
                 URL: https://issues.apache.org/jira/browse/SSHD-188
             Project: MINA SSHD
          Issue Type: Bug
         Environment: Windows, Linux
            Reporter: Maarten Smit

When creating the ssh server I have this:

sshd.setShellFactory(new PseudoTerminalFactory("/system/bin/sh", "-i"));

The PseudoTerminalFactory has this:

    public Command create() {
        return new InvertedShellWrapper(new PseudoTerminal());

And the "PseudoTerminal implements InvertedShell" contains the following

start(Map<String, String> env)

Now here is the thing, when a session is created and the user:
- closes it
- or the server is stopped
The destroy and exitValue functions are being called. In the destroy
function we stop the shell process (which is started in the start function).

However, if a user has a shell connection and doesn't do anything, default
after 10 minutes the idletimeout will have passed and the user gets a
timeout error and gets disconnected. HOWEVER, after that the destroy and
exitValue are never called, so the isAlive function will continue being
called (always returns true till the destroy function is called) and we
will have an endless running thread.
Next time we start the server we get an error the port is in use, etc. And
all the time the checking of isAlive of that session will just continue.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message