[
https://issues.apache.org/jira/browse/SSHD-666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stéphane Landelle updated SSHD-666:
-----------------------------------
Description:
Hi,
When closing the Nio2Session on OSX, current thread sometimes stalls.
Here's the thread stacktrace:
"sshd-SshClient[78c26b64]-nio2-thread-4" #230 daemon prio=5 os_prio=31
tid=0x00007f978030c800 nid=0xc603 runnable [0x00007000051b1000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.FileDispatcherImpl.close0(Native Method)
at sun.nio.ch.SocketDispatcher.close(SocketDispatcher.java:55)
at
sun.nio.ch.UnixAsynchronousSocketChannelImpl.implClose(UnixAsynchronousSocketChannelImpl.java:222)
at
sun.nio.ch.AsynchronousSocketChannelImpl.close(AsynchronousSocketChannelImpl.java:144)
at
org.apache.sshd.common.io.nio2.Nio2Session.doCloseImmediately(Nio2Session.java:197)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
at
org.apache.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:98)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:56)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:55)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.AbstractCloseable.doCloseImmediately(AbstractCloseable.java:157)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.access$001(AbstractInnerCloseable.java:28)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:51)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:55)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.AbstractCloseable.doCloseImmediately(AbstractCloseable.java:157)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.access$001(AbstractInnerCloseable.java:28)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:51)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.channel.AbstractChannel.doCloseImmediately(AbstractChannel.java:622)
at
org.apache.sshd.client.channel.ChannelSession.doCloseImmediately(ChannelSession.java:159)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:65)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.channel.AbstractChannel.handleClose(AbstractChannel.java:436)
at
org.apache.sshd.common.session.helpers.AbstractConnectionService.channelClose(AbstractConnectionService.java:425)
at
org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:308)
at
org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:530)
at
org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:463)
- locked <0x00000007b4d27fd0> (a java.lang.Object)
at
org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1325)
at
org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:424)
- locked <0x00000007b4fb9bd0> (a java.lang.Object)
at
org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:67)
at
org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:285)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:265)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:262)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:34)
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
at sun.nio.ch.Invoker$2.run(Invoker.java:218)
at
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- <0x00000007b4d0d0f0> (a java.util.concurrent.ThreadPoolExecutor$Worker)
I've only found a few references on such bug:
https://github.com/functional-streams-for-scala/fs2/issues/275
https://github.com/netty/netty/issues/852
This is most likely a Darwin/NIO2 bug but I wanted to let you know about it and
ask if you add an idea to work around this.
Regards
================
EDIT 1: It seems I can't comment on my own issue and so I can't answer to
Lyor Goldstein's suggestion. :(
We also tried with the Mina factory. Things are also very bad: the
"sshd-SshClient[68d28c46]-mina-thread-XXX" threads spin infinitely and lock the
cores they're running on. With mina 2.0.10, we don't get any log, but we do
with 2.0.13, where we get flooded with the following log:
"[info] 18:23:59.485 [WARN ] o.a.m.c.s.IoProcessor - Create a new selector.
Selected is 0, delta = 0"
With either factory, it seems sshd is broken on OSX. Even if it's not an issue
in production, it really is on development where OSX is our main platform.
Any help would be greatly appreciated, we'd rather not drop sshd for another
library. We can help debugging and testing, please advice.
====
EDIT 2: It seems we're hitting the same issue as described here:
https://www.mail-archive.com/[email protected]/msg26557.html
was:
Hi,
When closing the Nio2Session on OSX, current thread sometimes stalls.
Here's the thread stacktrace:
"sshd-SshClient[78c26b64]-nio2-thread-4" #230 daemon prio=5 os_prio=31
tid=0x00007f978030c800 nid=0xc603 runnable [0x00007000051b1000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.FileDispatcherImpl.close0(Native Method)
at sun.nio.ch.SocketDispatcher.close(SocketDispatcher.java:55)
at
sun.nio.ch.UnixAsynchronousSocketChannelImpl.implClose(UnixAsynchronousSocketChannelImpl.java:222)
at
sun.nio.ch.AsynchronousSocketChannelImpl.close(AsynchronousSocketChannelImpl.java:144)
at
org.apache.sshd.common.io.nio2.Nio2Session.doCloseImmediately(Nio2Session.java:197)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
at
org.apache.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:98)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:56)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:55)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.AbstractCloseable.doCloseImmediately(AbstractCloseable.java:157)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.access$001(AbstractInnerCloseable.java:28)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:51)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:55)
at
org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.AbstractCloseable.doCloseImmediately(AbstractCloseable.java:157)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.access$001(AbstractInnerCloseable.java:28)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:51)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
at
org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:47)
at
org.apache.sshd.common.channel.AbstractChannel.doCloseImmediately(AbstractChannel.java:622)
at
org.apache.sshd.client.channel.ChannelSession.doCloseImmediately(ChannelSession.java:159)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
at
org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:65)
at
org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:46)
at
org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
at
org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
at
org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
at
org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
at
org.apache.sshd.common.channel.AbstractChannel.handleClose(AbstractChannel.java:436)
at
org.apache.sshd.common.session.helpers.AbstractConnectionService.channelClose(AbstractConnectionService.java:425)
at
org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:308)
at
org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:530)
at
org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:463)
- locked <0x00000007b4d27fd0> (a java.lang.Object)
at
org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1325)
at
org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:424)
- locked <0x00000007b4fb9bd0> (a java.lang.Object)
at
org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:67)
at
org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:285)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:265)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:262)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:34)
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
at sun.nio.ch.Invoker$2.run(Invoker.java:218)
at
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- <0x00000007b4d0d0f0> (a java.util.concurrent.ThreadPoolExecutor$Worker)
I've only found a few references on such bug:
https://github.com/functional-streams-for-scala/fs2/issues/275
https://github.com/netty/netty/issues/852
This is most likely a Darwin/NIO2 bug but I wanted to let you know about it and
ask if you add an idea to work around this.
Regards
================
EDIT 1: It seems I can't comment on my own issue and so I can't answer to
Lyor Goldstein's suggestion. :(
We also tried with the Mina factory. Things are also very bad: the
"sshd-SshClient[68d28c46]-mina-thread-XXX" threads spin infinitely and lock the
cores they're running on. With mina 2.0.10, we don't get any log, but we do
with 2.0.13, where we get flooded with the following log:
"[info] 18:23:59.485 [WARN ] o.a.m.c.s.IoProcessor - Create a new selector.
Selected is 0, delta = 0"
With either factory, it seems sshd is broken on OSX. Even if it's not an issue
in production, it really is on development where OSX is our main platform.
Any help would be greatly appreciated, we'd rather not drop sshd for another
library. We can help debugging and testing, please advice.
> Nio2Session.close stalled on OSX
> --------------------------------
>
> Key: SSHD-666
> URL: https://issues.apache.org/jira/browse/SSHD-666
> Project: MINA SSHD
> Issue Type: Bug
> Affects Versions: 1.1.1, 1.2.0
> Environment: OSX
> Reporter: Stéphane Landelle
>
> Hi,
> When closing the Nio2Session on OSX, current thread sometimes stalls.
> Here's the thread stacktrace:
> "sshd-SshClient[78c26b64]-nio2-thread-4" #230 daemon prio=5 os_prio=31
> tid=0x00007f978030c800 nid=0xc603 runnable [0x00007000051b1000]
> java.lang.Thread.State: RUNNABLE
> at sun.nio.ch.FileDispatcherImpl.close0(Native Method)
> at sun.nio.ch.SocketDispatcher.close(SocketDispatcher.java:55)
> at
> sun.nio.ch.UnixAsynchronousSocketChannelImpl.implClose(UnixAsynchronousSocketChannelImpl.java:222)
> at
> sun.nio.ch.AsynchronousSocketChannelImpl.close(AsynchronousSocketChannelImpl.java:144)
> at
> org.apache.sshd.common.io.nio2.Nio2Session.doCloseImmediately(Nio2Session.java:197)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:98)
> at
> org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:56)
> at
> org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:46)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
> at
> org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
> at
> org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:55)
> at
> org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:46)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
> at
> org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable.doCloseImmediately(AbstractCloseable.java:157)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable.access$001(AbstractInnerCloseable.java:28)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:51)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:47)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:47)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
> at
> org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
> at
> org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:55)
> at
> org.apache.sshd.common.util.closeable.ParallelCloseable$1.operationComplete(ParallelCloseable.java:46)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
> at
> org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable.doCloseImmediately(AbstractCloseable.java:157)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable.access$001(AbstractInnerCloseable.java:28)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:51)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable$1.operationComplete(AbstractInnerCloseable.java:47)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.addListener(DefaultSshFuture.java:159)
> at
> org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:47)
> at
> org.apache.sshd.common.channel.AbstractChannel.doCloseImmediately(AbstractChannel.java:622)
> at
> org.apache.sshd.client.channel.ChannelSession.doCloseImmediately(ChannelSession.java:159)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:103)
> at
> org.apache.sshd.common.util.closeable.AbstractCloseable$1.operationComplete(AbstractCloseable.java:98)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
> at
> org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
> at
> org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:65)
> at
> org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:46)
> at
> org.apache.sshd.common.future.AbstractSshFuture.notifyListener(AbstractSshFuture.java:165)
> at
> org.apache.sshd.common.future.DefaultSshFuture.notifyListeners(DefaultSshFuture.java:202)
> at
> org.apache.sshd.common.future.DefaultSshFuture.setValue(DefaultSshFuture.java:104)
> at
> org.apache.sshd.common.future.DefaultCloseFuture.setClosed(DefaultCloseFuture.java:49)
> at
> org.apache.sshd.common.channel.AbstractChannel.handleClose(AbstractChannel.java:436)
> at
> org.apache.sshd.common.session.helpers.AbstractConnectionService.channelClose(AbstractConnectionService.java:425)
> at
> org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:308)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:530)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:463)
> - locked <0x00000007b4d27fd0> (a java.lang.Object)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1325)
> at
> org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:424)
> - locked <0x00000007b4fb9bd0> (a java.lang.Object)
> at
> org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:67)
> at
> org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:285)
> at
> org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:265)
> at
> org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:262)
> at
> org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:37)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:34)
> at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
> at sun.nio.ch.Invoker$2.run(Invoker.java:218)
> at
> sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Locked ownable synchronizers:
> - <0x00000007b4d0d0f0> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> I've only found a few references on such bug:
> https://github.com/functional-streams-for-scala/fs2/issues/275
> https://github.com/netty/netty/issues/852
> This is most likely a Darwin/NIO2 bug but I wanted to let you know about it
> and ask if you add an idea to work around this.
> Regards
> ================
> EDIT 1: It seems I can't comment on my own issue and so I can't answer to
> Lyor Goldstein's suggestion. :(
> We also tried with the Mina factory. Things are also very bad: the
> "sshd-SshClient[68d28c46]-mina-thread-XXX" threads spin infinitely and lock
> the cores they're running on. With mina 2.0.10, we don't get any log, but we
> do with 2.0.13, where we get flooded with the following log:
> "[info] 18:23:59.485 [WARN ] o.a.m.c.s.IoProcessor - Create a new selector.
> Selected is 0, delta = 0"
> With either factory, it seems sshd is broken on OSX. Even if it's not an
> issue in production, it really is on development where OSX is our main
> platform.
> Any help would be greatly appreciated, we'd rather not drop sshd for another
> library. We can help debugging and testing, please advice.
> ====
> EDIT 2: It seems we're hitting the same issue as described here:
> https://www.mail-archive.com/[email protected]/msg26557.html
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)