-2

My application closes out just fine but the JVM never exits. I notice all threads show up as STATE = BLOCKED. ActiveMQ failover protocol potentially blocking indefinitely, but the thread dump does not seem to indicate that at all. The one other outlier is a thread that appears to be from a CA Wiley tool (Introscope) that is in the IN_NATIVE state.

Any ideas what could cause this behavior?

Thread dump can be found here.

cwash
  • 4,185
  • 5
  • 43
  • 53

1 Answers1

1

Here is the relevant stack trace:

java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Interpreted frame) - java.net.SocketInputStream.read(byte[], int, int, int) @bci=87, line=152 (Interpreted frame) - java.net.SocketInputStream.read(byte[], int, int) @bci=11, line=122 (Interpreted frame) - com.wily.util.io.NonSyncBufferedInputStream.fill() @bci=14, line=54 (Interpreted frame) - com.wily.util.io.NonSyncBufferedInputStream.read() @bci=12, line=79 (Compiled frame) - java.io.FilterInputStream.read() @bci=4, line=83 (Compiled frame) - com.wily.util.io.EncryptInputStream.read() @bci=1, line=64 (Compiled frame) - com.wily.org.apache.commons.io.input.ProxyInputStream.read() @bci=4, line=49 (Compiled frame) - com.wily.org.apache.commons.io.input.CountingInputStream.read() @bci=1, line=70 (Compiled frame) - java.io.DataInputStream.readInt() @bci=4, line=387 (Interpreted frame) - com.wily.isengard.postofficehub.link.v1.IsengardObjectInputStream.readInt() @bci=4, line=1295 (Interpreted frame) - com.wily.isengard.postofficehub.link.v1.IsengardObjectInputStream.setUpStartObjectGraph() @bci=5, line=460 (Interpreted frame) - com.wily.isengard.postofficehub.link.v1.IsengardObjectInputStream.readObject() @bci=8, line=258 (Interpreted frame) - com.wily.isengard.postofficehub.link.v1.IncomingMessageDeliveryTask.deliverNextMessage(boolean) @bci=54, line=76 (Interpreted frame) - com.wily.isengard.postofficehub.link.v1.IncomingRouteConnector.receiveIncomingMessages(com.wily.isengard.postofficehub.link.v1.IsengardObjectInputStream) @bci=18, line=170 (Interpreted frame) - com.wily.isengard.postofficehub.link.v1.IncomingRouteConnector.doTask() @bci=32, line=89 (Interpreted frame) - com.wily.isengard.util.thread.AThreadedExecutable.run() @bci=27, line=192 (Interpreted frame)

The socketRead0 call is blocking io in native code. It will not return until a byte is read or, if the socket read timeout has been set, it times out. It cannot be interrupted. If you have any control over the creation of the Socket, it is important to set the timeout.

Brett Okken
  • 6,210
  • 1
  • 19
  • 25