jsonde
jsonde copied to clipboard
Deadlock when instrumenting all code in Apache Tomcat 7.0.62
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode):
"jSonde-daemon-thread-4" #27 daemon prio=5 os_prio=0 tid=0x00000000575bb000 nid=0x1794 waiting on condition [0x000000005c18f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c3ea7de8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"jSonde-daemon-thread-3" #26 daemon prio=5 os_prio=0 tid=0x0000000057b74800 nid=0x1394 in Object.wait() [0x000000005bfaf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.jsonde.profiler.network.NetworkServerImpl.sendMessage(NetworkServerImpl.java:160)
- locked <0x00000000c3ea0ae0> (a com.jsonde.profiler.network.NetworkServerImpl)
at com.jsonde.profiler.ProfilerImpl.sendMessage(ProfilerImpl.java:211)
at com.jsonde.profiler.telemetry.TelemetryDataProvider.run(TelemetryDataProvider.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
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)
"jSonde-daemon-thread-0" #21 daemon prio=5 os_prio=0 tid=0x0000000057b72800 nid=0x3a8 in Object.wait() [0x000000005bddf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:142)
- locked <0x00000000c3eb1a78> (a java.lang.ref.ReferenceQueue$Lock)
at com.jsonde.profiler.heap.HeapAnalyzer.run(HeapAnalyzer.java:57)
at java.lang.Thread.run(Thread.java:745)
"jSonde-daemon-thread-2" #25 daemon prio=5 os_prio=0 tid=0x0000000057bb5000 nid=0x744 in Object.wait() [0x000000005bb7e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.jsonde.profiler.network.NetworkServerImpl.sendMessage(NetworkServerImpl.java:160)
- locked <0x00000000c3ea0ae0> (a com.jsonde.profiler.network.NetworkServerImpl)
at com.jsonde.profiler.ProfilerImpl.processMethodCall(ProfilerImpl.java:335)
at com.jsonde.profiler.ThreadLocalProfiler.leaveMethodImpl(ThreadLocalProfiler.java:128)
at com.jsonde.profiler.ProfilerImpl.leaveMethodImpl(ProfilerImpl.java:160)
at com.jsonde.profiler.Profiler.leaveMethod(Profiler.java:132)
at java.io.ObjectStreamClass$WeakClassKey.<init>(ObjectStreamClass.java:2308)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:322)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1134)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at com.jsonde.api.methodCall.MethodCallMessage.writeExternal(MethodCallMessage.java:107)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at com.jsonde.profiler.network.ServerOutputWorker.run(ServerOutputWorker.java:49)
at java.lang.Thread.run(Thread.java:745)
"jSonde-daemon-thread-1" #24 daemon prio=5 os_prio=0 tid=0x0000000057e2f000 nid=0x860 runnable [0x000000005ba1f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.net.SocketInputStream.read(SocketInputStream.java:203)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2296)
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2589)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2599)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1319)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at com.jsonde.profiler.network.ServerInputWorker.run(ServerInputWorker.java:49)
at java.lang.Thread.run(Thread.java:745)
"Thread-3" #22 daemon prio=5 os_prio=0 tid=0x0000000057865800 nid=0x16d0 in Object.wait() [0x0000000059a8e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.jsonde.profiler.network.NetworkServerImpl.sendMessage(NetworkServerImpl.java:160)
- locked <0x00000000c3ea0ae0> (a com.jsonde.profiler.network.NetworkServerImpl)
at com.jsonde.profiler.ProfilerImpl.registerClass(ProfilerImpl.java:250)
at com.jsonde.instrumentation.TransformerCallback.getClassId(TransformerCallback.java:38)
at com.jsonde.instrumentation.ClassTransformer.visit(ClassTransformer.java:66)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.jsonde.instrumentation.ByteCodeTransformer.doTransform(ByteCodeTransformer.java:103)
at com.jsonde.instrumentation.ByteCodeTransformer.transform(ByteCodeTransformer.java:43)
at com.jsonde.agent.JSondeAgent.transform(JSondeAgent.java:264)
at com.jsonde.agent.JSondeAgent.redefineLoadedClass(JSondeAgent.java:212)
at com.jsonde.agent.JSondeAgent.redefineLoadedClasses(JSondeAgent.java:165)
at com.jsonde.agent.JSondeAgent.access$000(JSondeAgent.java:23)
at com.jsonde.agent.JSondeAgent$1.run(JSondeAgent.java:50)
at java.lang.Thread.run(Thread.java:745)
"ajp-bio-8009-AsyncTimeout" #19 daemon prio=5 os_prio=0 tid=0x00000000587ea000 nid=0x119c waiting on condition [0x000000005b5be000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.null (Redefined)
at java.lang.Thread.run(Thread.java:745)
"ajp-bio-8009-Acceptor-0" #18 daemon prio=5 os_prio=0 tid=0x000000005827a800 nid=0x142c runnable [0x0000000059bcf000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:404)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199)
- locked <0x00000000c35488e0> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.null (Redefined)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.null (Redefined)
at java.lang.Thread.run(Thread.java:745)
"http-bio-8080-AsyncTimeout" #17 daemon prio=5 os_prio=0 tid=0x000000005a0a0000 nid=0x126c waiting on condition [0x000000005b45f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.null (Redefined)
at java.lang.Thread.run(Thread.java:745)
"http-bio-8080-Acceptor-0" #16 daemon prio=5 os_prio=0 tid=0x00000000587ec000 nid=0x137c in Object.wait() [0x000000005b22f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.jsonde.profiler.network.NetworkServerImpl.sendMessage(NetworkServerImpl.java:160)
- locked <0x00000000c3ea0ae0> (a com.jsonde.profiler.network.NetworkServerImpl)
at com.jsonde.profiler.ProfilerImpl.describeClassImpl(ProfilerImpl.java:318)
at com.jsonde.profiler.Profiler.describeClass(Profiler.java:117)
at org.apache.tomcat.util.net.JIoEndpoint.setSocketOptions(JIoEndpoint.java)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.null (Redefined)
at java.lang.Thread.run(Thread.java:745)
"ContainerBackgroundProcessor[StandardEngine[Catalina]]" #15 daemon prio=5 os_prio=0 tid=0x000000005a3e0800 nid=0x1540 in Object.wait() [0x000000005a02f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.jsonde.profiler.network.NetworkServerImpl.sendMessage(NetworkServerImpl.java:160)
- locked <0x00000000c3ea0ae0> (a com.jsonde.profiler.network.NetworkServerImpl)
at com.jsonde.profiler.ProfilerImpl.processMethodCall(ProfilerImpl.java:335)
at com.jsonde.profiler.ThreadLocalProfiler.leaveMethodImpl(ThreadLocalProfiler.java:128)
at com.jsonde.profiler.ProfilerImpl.leaveMethodImpl(ProfilerImpl.java:160)
at com.jsonde.profiler.Profiler.leaveMethod(Profiler.java:132)
at org.apache.catalina.core.ContainerBase.access$100(ContainerBase.java:133)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.null (Redefined)
at java.lang.Thread.run(Thread.java:745)
"GC Daemon" #12 daemon prio=2 os_prio=-2 tid=0x0000000057bf1000 nid=0xfec in Object.wait() [0x000000005957f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c3294b88> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:117)
- locked <0x00000000c3294b88> (a sun.misc.GC$LatencyLock)
"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x0000000056bc8000 nid=0x1754 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x000000005518f000 nid=0x113c waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x000000005518d800 nid=0x870 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x0000000055185800 nid=0x1498 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x0000000055184800 nid=0x1124 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x0000000055181000 nid=0x1264 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000055124000 nid=0x17e0 in Object.wait() [0x000000005667e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:142)
- locked <0x00000000c32953f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:158)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x000000005511b000 nid=0xd88 in Object.wait() [0x000000005654f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
- locked <0x00000000c3295438> (a java.lang.ref.Reference$Lock)
"main" #1 prio=5 os_prio=0 tid=0x0000000001ecf800 nid=0x17dc runnable [0x0000000002bbe000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:404)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199)
- locked <0x00000000c3eecd08> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513)
at org.apache.catalina.core.StandardServer.null (Redefined)
at org.apache.catalina.startup.Catalina.null (Redefined)
at org.apache.catalina.startup.Catalina.null (Redefined)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.catalina.startup.Bootstrap.null (Redefined)
at org.apache.catalina.startup.Bootstrap.null (Redefined)
"VM Thread" os_prio=2 tid=0x0000000055115800 nid=0x13bc runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000272d000 nid=0x298 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000272e800 nid=0xe4c runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002730000 nid=0x1088 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002731800 nid=0x17a0 runnable
"VM Periodic Task Thread" os_prio=2 tid=0x0000000056bdb800 nid=0x1620 waiting on condition
JNI global references: 64
Heap
PSYoungGen total 70656K, used 52364K [0x00000000ebb80000, 0x00000000f4580000, 0x0000000100000000)
eden space 63488K, 82% used [0x00000000ebb80000,0x00000000eeea3300,0x00000000ef980000)
from space 7168K, 0% used [0x00000000ef980000,0x00000000ef980000,0x00000000f0080000)
to space 7168K, 0% used [0x00000000f3e80000,0x00000000f3e80000,0x00000000f4580000)
ParOldGen total 39424K, used 16742K [0x00000000c3200000, 0x00000000c5880000, 0x00000000ebb80000)
object space 39424K, 42% used [0x00000000c3200000,0x00000000c42599e0,0x00000000c5880000)
Metaspace used 21255K, capacity 21576K, committed 21808K, reserved 1069056K
class space used 2026K, capacity 2142K, committed 2176K, reserved 1048576K