2 Replies Latest reply on Jan 25, 2018 3:59 AM by neeraj.gupta1

    Deadlock in Remoting

    helmutz

      Hi All,

       

      (This problem was originally discussed in an another thread (WildFly 8.2.0 freezing), but since the problem was narrowed since, I wanted to create a new thread for this)

       

      I'm having a problem where approximately once a day I'm getting a deadlock in WildFly 8.2.0 Remoting (using EJBs from a remote Java applet). This causes all remote connections to drop and Wildfly (Undertow?)  not accepting HTTP connections anymore. The only way to recover from this is to kill WildFly process from Windows Task Manager and restart it.

       

      I do not know, if this is Remoting or WildFly related problem, but since I'm not seeing any references to my own application code, I'm guessing the problem lies indeed in WildFly internals.

       

      Any ideas how to debug this further or how to fix this?

      Java stack information for the threads listed above:

      ===================================================

      "EJB default - 10":

          at org.jboss.remoting3.remote.RemoteConnection$RemoteWriteListener.send(RemoteConnection.java:294)

          - waiting to lock <0x00000000d0f05438> (a java.util.ArrayDeque)

          at org.jboss.remoting3.remote.RemoteConnection.send(RemoteConnection.java:122)

          at org.jboss.remoting3.remote.OutboundMessage$1.accept(OutboundMessage.java:154)

          at org.xnio.streams.BufferPipeOutputStream.send(BufferPipeOutputStream.java:122)

          at org.xnio.streams.BufferPipeOutputStream.send(BufferPipeOutputStream.java:110)

          at org.xnio.streams.BufferPipeOutputStream.flush(BufferPipeOutputStream.java:139)

          - eliminated <0x00000000fc38e2e8> (a org.xnio.streams.BufferPipeOutputStream)

          at org.xnio.streams.BufferPipeOutputStream.close(BufferPipeOutputStream.java:157)

          - locked <0x00000000fc38e2e8> (a org.xnio.streams.BufferPipeOutputStream)

          at org.jboss.remoting3.remote.OutboundMessage.close(OutboundMessage.java:283)

          - locked <0x00000000fc38e2e8> (a org.xnio.streams.BufferPipeOutputStream)

          at org.jboss.as.ejb3.remote.protocol.versionone.ChannelAssociation.releaseChannelMessageOutputStream(ChannelAssociation.java:85)

          at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.writeMethodInvocationResponse(MethodInvocationMessageHandler.java:379)

          at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$600(MethodInvocationMessageHandler.java:70)

          at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:246)

          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

          at java.util.concurrent.FutureTask.run(FutureTask.java:266)

          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)

          at org.jboss.threads.JBossThread.run(JBossThread.java:122)

      "default I/O-3":

          at org.jboss.remoting3.remote.OutboundMessage.cancel(OutboundMessage.java:289)

          - waiting to lock <0x00000000fc38e2e8> (a org.xnio.streams.BufferPipeOutputStream)

          at org.jboss.remoting3.remote.RemoteConnectionChannel.closeMessages(RemoteConnectionChannel.java:560)

          at org.jboss.remoting3.remote.RemoteConnectionChannel.closeAction(RemoteConnectionChannel.java:542)

          at org.jboss.remoting3.spi.AbstractHandleableCloseable.closeAsync(AbstractHandleableCloseable.java:359)

          at org.jboss.remoting3.remote.RemoteConnectionHandler.closeAllChannels(RemoteConnectionHandler.java:423)

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

          at org.jboss.remoting3.remote.RemoteConnectionHandler.sendCloseRequest(RemoteConnectionHandler.java:232)

          at org.jboss.remoting3.remote.RemoteConnectionHandler.handleConnectionClose(RemoteConnectionHandler.java:112)

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

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

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

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

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

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

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

          at org.xnio.ChannelListeners$DelegatingChannelListener.handleEvent(ChannelListeners.java:1092)

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

          at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)

          at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:88)

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

       

      Found 1 deadlock.