I suppose that's a bug. Could you please raise a JIRA issue and I'll try to fix it asap. I'm planning on a 0.8.0 release very soon, so it could be integrated.
On Tue, Sep 18, 2012 at 2:40 PM, Maarten Smit <[email protected]>wrote: > I tested it quite well, here is the case: > > When creating the ssh server I have this: > > sshd.setShellFactory(new PseudoTerminalFactory("/system/bin/sh", "-i")); > > The PseudoTerminalFactory has this: > > @Override > public Command create() { > return new InvertedShellWrapper(new PseudoTerminal()); > } > > And the "PseudoTerminal implements InvertedShell" contains the following > functions: > > destroy() > exitValue() > getErrorStream() > getInputStream() > getOutputStream() > isAlive() > 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. > > So is there a solution? Or am I missing something.. > > Thanks! > > > > > > 2012/9/10 Maarten Smit <[email protected]> > > > Hello, > > > > I have implemented my own ShellFactory. Everything works ok now, if the > > user connects and disconnects the destroy function of the custom > > shellfactory is called. However, when a user is connected (for example > > through putty) and the connection timeouts the user is disconnected but > the > > destroy function of the shellfactory isn't called.. So the shell session > is > > still running while the user is disconnected.. > > > > Maybe someone can help? Since setting the idle timer to 0 isn't really an > > option. > > > > Thanks! > > > > Maarten > > > -- ------------------------ Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ FuseSource, Integration everywhere http://fusesource.com
