EHC ❯ All threads and thread pools in Ehcache should have useful and meaningful names
-
Bug
-
Status: Closed
-
1 Critical
-
Resolution: Fixed
-
-
-
hsingh
-
Reporter: amiller
-
December 01, 2009
-
0
-
Watchers: 1
-
January 17, 2013
-
December 02, 2009
Description
From stack trace, saw a thread like this that is assumed to be an executor related thread in Ehcache:
“pool-1-thread-1” prio=6 tid=0x04454400 nid=0x1230 waiting on condition [0x04e7f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x0bc9bf88> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)
Executors seem to be created in two places in Ehcache core:
- Cache has an executorService field that is initialized in getExecutorService()
- MulticastKeepaliveHeartbeatReceiver has a processingThreadPool initialized in init()
Should use a thread factory for these to get the threads named better.
Fixed in rev-1479