[Remoting3] Indefinitely waiting threads when remoting layer closing.
whitingjr Nov 9, 2013 8:21 PMHi,
I am running a benchmark that creates some load. Some of the load is doing remote ejb calls.
When my ejb client jvm attempts to close down the vm is getting wedged. It has happened more than once. jstack was used to dump out the state of the vm and it's threads with respective call stack. The 2 attachments are are the output of jstack.
The following is from the output of process id 11001 for two of the threads in remoting code waiting for a notification.
"Thread-715" daemon prio=10 tid=0x00007f486c052800 nid=0xc82 in Object.wait() [0x00007f4769995000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:503)
at org.jboss.remoting3.spi.AbstractHandleableCloseable.close(AbstractHandleableCloseable.java:177)
- locked <0x000000041e248288> (a java.lang.Object)
at org.jboss.ejb.client.remoting.EndpointPool.safeClose(EndpointPool.java:281)
at org.jboss.ejb.client.remoting.EndpointPool.shutdown(EndpointPool.java:111)
- locked <0x000000041e248418> (a org.jboss.ejb.client.remoting.EndpointPool)
at org.jboss.ejb.client.remoting.EndpointPool.access$500(EndpointPool.java:61)
at org.jboss.ejb.client.remoting.EndpointPool$ShutdownTask.run(EndpointPool.java:301)
at java.lang.Thread.run(Thread.java:722)
"Remoting "client-endpoint" task-3" daemon prio=10 tid=0x00007f482408c800 nid=0x3440 in Object.wait() [0x00007f4793932000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:503)
at org.jboss.remoting3.spi.AbstractHandleableCloseable.close(AbstractHandleableCloseable.java:177)
- locked <0x000000041e26e5c0> (a java.lang.Object)
at org.jboss.ejb.client.remoting.ChannelAssociation$ResponseReceiver.handleEnd(ChannelAssociation.java:445)
at org.jboss.remoting3.remote.RemoteConnectionChannel$2.run(RemoteConnectionChannel.java:277)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
The application installed is running on EAP 6.1.0. Which is using jboss-remoting-3.2.16.GA-redhat-1.jar. Should I be using some configuration on the client/server side to allow the client remoting layer to shut down gracefully ?
Regards,
Jeremy
-
11001-jstack.txt.zip 2.2 KB
-
13661-jstack.txt.zip 2.6 KB