ThreadDumps on AEM 6.3 instances
Hi All ,
we are seeing thread dumps on our AEM instances . when we analyze the dump we found most of the threads are in waiting state (80%).
below are the details on our instance
- Java Version - OpenJDK version "1.8.0_10"
- AEM Directory is owned by root , and we dont have any service account for AEM to run under . do we need to setup one?
- Java Opts - -Xms4096m -Xmx4096m -XX:MetaspaceSize=100m
- we have online revision clean up which runs as suggested . do we have to run any other maintenance tasks or scheduled system restarts ?
please provide us with steps to follow to avoid these thread dumps
below is info from thread Dump
86 threads in WAITING state
sling-oak-113 - priority:5 - threadId:0x18b3 - nativeId:0xffffffff - state:WAITING
stackTrace:
java.lang.Thread.State: WAITING (on object monitor)
at sun.misc.Unsafe.park(Native Method)
- waiting to lock <0x5dc62067> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) owned by "null" tid=0x-1
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)
stackTrace:
java.lang.Thread.State: WAITING (on object monitor)
at sun.misc.Unsafe.park(Native Method)
- waiting to lock <0x5dc62067> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) owned by "null" tid=0x-1
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)