Darren, you're right. At the moment, each forwarding channel will create its own acceptor. I've just opened a JIRA issue to fix that. https://issues.apache.org/jira/browse/SSHD-289 I'll provide a fix for it asap.
2014-02-05 17:54 GMT+01:00 Darren Shepherd <[email protected]>: > I really don't know. Let me clarify the issue. Specifically, this is what > I'm seeing. On SSH_MSG_CHANNEL_OPEN TcpipServerChannel.doInit(Buffer) will > call org.apache.sshd.common.io.IoServiceFactory.createConnector(). In the > MinaServiceFactory implementation of createConnector() and createAcceptor() > it will internally create a org.apache.mina.core.service.IoConnector or > org.apache.mina.core.service.IoAcceptor but it does not pass in an executor > so org.apache.mina.core.service.AbstractIoAcceptor will create a new > executor. > > The net effect of this is that with each SSH_MSG_CHANNEL_OPEN on > TcpipServerChannel two thread pools are created. If you use > Client.startRemotePortForwarding() and then repeatedly connect to the > remote socket you will end up with a lot of thread pools. > > To work around this issue I created my own SSHD IoServiceFactory to pass in > the Executor [1] [2] [3]. I believe this is working fine, but I'm now > having a different issue with leaking sockets which I'll address on a > different thread. > > Darren > > [1] > > https://github.com/ibuildthecloud/dstack/blob/wip-b/code/implementation/agent-connection-ssh/src/main/java/io/github/ibuildthecloud/agent/connection/ssh/connection/SharedExecutorMinaServiceServiceFactory.java > [2] > > https://github.com/ibuildthecloud/dstack/blob/wip-b/code/implementation/agent-connection-ssh/src/main/java/io/github/ibuildthecloud/agent/connection/ssh/connection/SharedExecutorMinaAcceptor.java > [3] > > https://github.com/ibuildthecloud/dstack/blob/wip-b/code/implementation/agent-connection-ssh/src/main/java/io/github/ibuildthecloud/agent/connection/ssh/connection/SharedExecutorMinaAcceptor.java > > > > > On Fri, Jan 31, 2014 at 12:43 AM, Emmanuel Lecharny <[email protected] > >wrote: > > > Are you using an executor in your filter chain ? > > Le 30 janv. 2014 22:18, "Darren Shepherd" <[email protected]> > a > > écrit : > > > > > I'm trying to use remote port forwarding. What I'm noticing is that > > > for each TCP connection made to the remote port a new > > > Nio2Connector/MinaConnector is created which creates a new thread > > > pool. I end with hundreds of threads by just connecting to a single > > > port every second. Is there anyway to share a thread pool? > > > > > > Anybody else seeing this behaviour? > > > > > > Darren > > > > > >
