0 Replies Latest reply on Feb 14, 2014 5:16 AM by Philippe Marschall

    Deadlock in XNIO in EAP 6.1

    Philippe Marschall Expert

      We're seeing the following deadlock in EAP 6.1 when using EJB remoting over SSL

       

      Found one Java-level deadlock

       

      "Remoting "acme" write-1":

        waiting to lock monitor 0x000000000066e6a8 (object 0x000000077947eee0, a org.xnio.Buffers$4),

        which is held by "Remoting "acme" read-1"

      "Remoting "e_qpas_load1_batch" read-1":

        waiting to lock monitor 0x000000000184cbb8 (object 0x000000077947ef38, a org.xnio.ByteBufferSlicePool$PooledByteBuffer),

        which is held by "Remoting "acme" write-1"

       

       

      Java stack information for the threads listed above

       

      "Remoting "acme" write-1":

          at org.xnio.channels.FramedMessageChannel.closeAction(FramedMessageChannel.java:328)

          - waiting to lock <0x000000077947eee0> (a org.xnio.Buffers$4)

          at org.xnio.channels.TranslatingSuspendableChannel.close(TranslatingSuspendableChannel.java:811)

          at org.xnio.IoUtils.safeClose(IoUtils.java:137)

          at org.xnio.channels.TranslatingSuspendableChannel$3.handleEvent(TranslatingSuspendableChannel.java:123)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.channels.TranslatingSuspendableChannel.close(TranslatingSuspendableChannel.java:813)

          at org.xnio.ssl.JsseConnectedSslStreamChannel.handleHandshake(JsseConnectedSslStreamChannel.java:412)

          - locked <0x000000077947ef38> (a org.xnio.ByteBufferSlicePool$PooledByteBuffer)

          at org.xnio.ssl.JsseConnectedSslStreamChannel.doFlush(JsseConnectedSslStreamChannel.java:638)

          at org.xnio.ssl.JsseConnectedSslStreamChannel.flushAction(JsseConnectedSslStreamChannel.java:613)

          - locked <0x000000077947efb8> (a org.xnio.ByteBufferSlicePool$PooledByteBuffer)

          at org.xnio.channels.TranslatingSuspendableChannel.flush(TranslatingSuspendableChannel.java:604)

          at org.xnio.channels.FramedMessageChannel.flushAction(FramedMessageChannel.java:275)

          - locked <0x000000077947ef50> (a org.xnio.Buffers$4)

          at org.xnio.channels.TranslatingSuspendableChannel.flush(TranslatingSuspendableChannel.java:604)

          at org.jboss.remoting3.remote.RemoteConnection$RemoteWriteListener.handleEvent(RemoteConnection.java:221)

          - locked <0x000000077947f000> (a java.util.ArrayDeque)

          at org.jboss.remoting3.remote.RemoteConnection$RemoteWriteListener.handleEvent(RemoteConnection.java:196)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.channels.TranslatingSuspendableChannel.handleWritable(TranslatingSuspendableChannel.java:243)

          at org.xnio.channels.TranslatingSuspendableChannel$2.handleEvent(TranslatingSuspendableChannel.java:113)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.channels.TranslatingSuspendableChannel.handleWritable(TranslatingSuspendableChannel.java:243)

          at org.xnio.channels.TranslatingSuspendableChannel$2.handleEvent(TranslatingSuspendableChannel.java:113)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.nio.NioHandle.run(NioHandle.java:90)

          at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:208)

          at org.xnio.nio.WorkerThread.run(WorkerThread.java:121)

         

      "Remoting "acme" read-1":

          at org.xnio.ssl.JsseConnectedSslStreamChannel.read(JsseConnectedSslStreamChannel.java:473)

          - waiting to lock <0x000000077947ef38> (a org.xnio.ByteBufferSlicePool$PooledByteBuffer)

          at org.xnio.ssl.JsseConnectedSslStreamChannel.read(JsseConnectedSslStreamChannel.java:449)

          at org.xnio.channels.FramedMessageChannel.receive(FramedMessageChannel.java:87)

          - locked <0x000000077947eee0> (a org.xnio.Buffers$4)

          at org.jboss.remoting3.remote.RemoteReadListener.handleEvent(RemoteReadListener.java:72)

          at org.jboss.remoting3.remote.RemoteReadListener.handleEvent(RemoteReadListener.java:45)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:189)

          at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:103)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:189)

          at org.xnio.ssl.JsseConnectedSslStreamChannel.handleReadable(JsseConnectedSslStreamChannel.java:180)

          at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:103)

          at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)

          at org.xnio.nio.NioHandle.run(NioHandle.java:90)

          at org.xnio.nio.WorkerThread.run(WorkerThread.java:187)