You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Hugo Arès (JIRA)" <ji...@apache.org> on 2017/10/19 19:08:01 UTC

[jira] [Created] (SSHD-779) Deadlock in ChannelOutputStream

Hugo Arès created SSHD-779:
------------------------------

             Summary: Deadlock in ChannelOutputStream
                 Key: SSHD-779
                 URL: https://issues.apache.org/jira/browse/SSHD-779
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 1.4.0
            Reporter: Hugo Arès


Since Gerrit upgraded to 1.4.0, the following deadlock is happening with NI02:

Found one Java-level deadlock:
=============================
"SSH-Stream-Worker-20":
  waiting to lock monitor 0x00007fac34021cf8 (object 0x00007fb450addb38, a java.lang.Object),
  which is held by "sshd-SshServer[4c110f87]-nio2-thread-20"
"sshd-SshServer[4c110f87]-nio2-thread-20":
  waiting to lock monitor 0x00007fad20048678 (object 0x00007fb450ade608, a org.apache.sshd.common.channel.ChannelOutputStream),
  which is held by "SSH-Stream-Worker-20"

Java stack information for the threads listed above:
===================================================
"SSH-Stream-Worker-20":
        at org.apache.sshd.common.session.helpers.AbstractSession.doWritePacket(AbstractSession.java:1056)
        - waiting to lock <0x00007fb450addb38> (a java.lang.Object)
        at org.apache.sshd.common.session.helpers.AbstractSession.writePacket(AbstractSession.java:1005)
        at org.apache.sshd.common.channel.AbstractChannel.writePacket(AbstractChannel.java:766)
        at org.apache.sshd.common.channel.ChannelOutputStream.flush(ChannelOutputStream.java:219)
        - locked <0x00007fb450ade608> (a org.apache.sshd.common.channel.ChannelOutputStream)
        at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297)
        at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
        - locked <0x00007fb450ae2eb0> (a java.io.OutputStreamWriter)
        at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
        at java.io.BufferedWriter.flush(BufferedWriter.java:254)
        - locked <0x00007fb450ae2eb0> (a java.io.OutputStreamWriter)
        at java.io.PrintWriter.flush(PrintWriter.java:320)
        - locked <0x00007fb450ae2e70> (a java.io.BufferedWriter)
        at java.io.PrintWriter.checkError(PrintWriter.java:357)
        at com.google.gerrit.sshd.commands.StreamEvents.writeEvents(StreamEvents.java:234)
        at com.google.gerrit.sshd.commands.StreamEvents.access$000(StreamEvents.java:53)
        at com.google.gerrit.sshd.commands.StreamEvents$1.run(StreamEvents.java:100)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:418)
        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:748)
"sshd-SshServer[4c110f87]-nio2-thread-20":
        at org.apache.sshd.common.channel.ChannelOutputStream.close(ChannelOutputStream.java:241)
        - waiting to lock <0x00007fb450ade608> (a org.apache.sshd.common.channel.ChannelOutputStream)
        at org.apache.sshd.common.util.io.IoUtils.closeQuietly(IoUtils.java:137)
        at org.apache.sshd.server.channel.ChannelSession.doCloseImmediately(ChannelSession.java:201)
        at org.apache.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:81)
        at org.apache.sshd.common.channel.AbstractChannel.close(AbstractChannel.java:548)
        at org.apache.sshd.common.util.closeable.ParallelCloseable.doClose(ParallelCloseable.java:61)
        at org.apache.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63)
        at org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:45)
        at org.apache.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:81)
        at org.apache.sshd.common.util.closeable.ParallelCloseable.doClose(ParallelCloseable.java:61)
        at org.apache.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63)
        at org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:55)
        at org.apache.sshd.common.util.closeable.SequentialCloseable$1.operationComplete(SequentialCloseable.java:45)
        at org.apache.sshd.common.util.closeable.SequentialCloseable.doClose(SequentialCloseable.java:68)
        at org.apache.sshd.common.util.closeable.SimpleCloseable.close(SimpleCloseable.java:63)
        at org.apache.sshd.common.util.closeable.AbstractInnerCloseable.doCloseImmediately(AbstractInnerCloseable.java:45)
        at org.apache.sshd.common.util.closeable.AbstractCloseable.close(AbstractCloseable.java:81)
        at org.apache.sshd.common.session.helpers.AbstractSession.exceptionCaught(AbstractSession.java:862)
        at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.exceptionCaught(AbstractSessionIoHandler.java:56)
        at org.apache.sshd.common.io.nio2.Nio2Session.exceptionCaught(Nio2Session.java:164)
        at org.apache.sshd.common.io.nio2.Nio2Session.handleWriteCycleFailure(Nio2Session.java:386)
        at org.apache.sshd.common.io.nio2.Nio2Session$2.onFailed(Nio2Session.java:348)
        at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$failed$1(Nio2CompletionHandler.java:46)
        at org.apache.sshd.common.io.nio2.Nio2CompletionHandler$$Lambda$318/1992024659.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.failed(Nio2CompletionHandler.java:45)
        at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:128)
        at sun.nio.ch.Invoker.invokeDirect(Invoker.java:157)
        at sun.nio.ch.UnixAsynchronousSocketChannelImpl.implWrite(UnixAsynchronousSocketChannelImpl.java:736)
        at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:382)
        at sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:399)
        at org.apache.sshd.common.io.nio2.Nio2Session.doWriteCycle(Nio2Session.java:334)
        at org.apache.sshd.common.io.nio2.Nio2Session.startWriting(Nio2Session.java:318)
        at org.apache.sshd.common.io.nio2.Nio2Session.write(Nio2Session.java:148)
        at org.apache.sshd.common.session.helpers.AbstractSession.doWritePacket(AbstractSession.java:1063)
        - locked <0x00007fb450addb38> (a java.lang.Object)
        at org.apache.sshd.common.session.helpers.AbstractSession.writePacket(AbstractSession.java:1005)
        at org.apache.sshd.common.session.helpers.AbstractConnectionService.sendGlobalResponse(AbstractConnectionService.java:694)
        at org.apache.sshd.common.session.helpers.AbstractConnectionService.globalRequest(AbstractConnectionService.java:662)
        at org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:353)
        at org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:564)
        at org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:497)
        - locked <0x00007fb450ad9c48> (a java.lang.Object)
        at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1406)
        at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:458)
        - locked <0x00007fb450addb48> (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:277)
        at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:257)
        at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:254)
        at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38)
        at org.apache.sshd.common.io.nio2.Nio2CompletionHandler$$Lambda$182/2116066305.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
        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:748)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)