This issues was due to debug level logging was enabled. Once I disabled the debug logging, problem is resolved.
On Tue, Nov 10, 2009 at 7:24 AM, Rohit Joshi <rohit.c.jo...@gmail.com>wrote: > Hi, > I am using JCSCache as a in-memory caching solution for our product. > Sometime put and remove calls on JCSCache causes a deadlock. See the thread > dump below. > I couldn't reproduce during the performance test but our team in CZ is > able to reproduce this. Is it problem due to mis configuration? > > I uses jcs-1.3 using maven dependency. See the cache.ccf below the > thread-dump. > > Thread "Thread-790" thread-id 1,518 thread-stateBLOCKEDWaiting on lock: > org.apache.jcs.engine.control.compositeca...@180575f > Owned by: Thread-579 Id: 1,306 at: > org.apache.jcs.engine.control.CompositeCache.remove(CompositeCache.java:736) > at: > org.apache.jcs.engine.control.CompositeCache.remove(CompositeCache.java:702) > at: org.apache.jcs.access.CacheAccess.remove(CacheAccess.java:362) > at: com.example.maf.cache.JCSCache.removeObject(JCSCache.java:341) > > Thread "Thread-789" thread-id 1,517 thread-stateBLOCKEDWaiting on lock: > org.apache.jcs.engine.control.compositeca...@180575f > Owned by: Thread-579 Id: 1,306 at: > org.apache.jcs.engine.control.CompositeCache.remove(CompositeCache.java:736) > at: > org.apache.jcs.engine.control.CompositeCache.remove(CompositeCache.java:702) > at: org.apache.jcs.access.CacheAccess.remove(CacheAccess.java:362) > at: com.example.maf.cache.JCSCache.removeObject(JCSCache.java:341) > > Thread "Thread-788" thread-id 1,516 thread-stateBLOCKEDWaiting on lock: > org.apache.jcs.engine.control.compositeca...@180575f > Owned by: Thread-579 Id: 1,306 at: > org.apache.jcs.engine.control.CompositeCache.update(CompositeCache.java:162) > at: org.apache.jcs.access.CacheAccess.put(CacheAccess.java:281) > at: org.apache.jcs.access.CacheAccess.put(CacheAccess.java:249) > at: com.example.maf.cache.JCSCache.putObject(JCSCache.java:294) > > Thread "Thread-787" thread-id 1,515 thread-stateBLOCKEDWaiting on lock: > org.apache.jcs.engine.control.compositeca...@180575f > Owned by: Thread-579 Id: 1,306 at: > org.apache.jcs.engine.control.CompositeCache.remove(CompositeCache.java:736) > at: > org.apache.jcs.engine.control.CompositeCache.remove(CompositeCache.java:702) > at: org.apache.jcs.access.CacheAccess.remove(CacheAccess.java:362) > at: com.example.maf.cache.JCSCache.removeObject(JCSCache.java:341) > > Thread "Thread-786" thread-id 1,514 thread-stateBLOCKEDWaiting on lock: > org.apache.jcs.engine.control.compositeca...@180575f > Owned by: Thread-579 Id: 1,306 at: > org.apache.jcs.engine.control.CompositeCache.update(CompositeCache.java:162) > at: org.apache.jcs.access.CacheAccess.put(CacheAccess.java:281) > at: org.apache.jcs.access.CacheAccess.put(CacheAccess.java:249) > at: com.example.maf.cache.JCSCache.putObject(JCSCache.java:294) > > > > Here is the cache.ccf file > > # > # Default config: don't allow anything to be stored.maxobject=0 > jcs.default= > jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.default.cacheattributes.MaxObjects=0 > > jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > jcs.default.cacheattributes.UseMemoryShrinker=false > jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes > jcs.default.elementattributes.IsEternal=false > jcs.default.elementattributes.IsRemote=false > jcs.default.elementattributes.IsLateral=false > jcs.default.elementattributes.IsSpool=false > > # > ## Used by subscriber entry > # > jcs.region.subscriber= > > jcs.region.subscriber.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.region.subscriber.cacheattributes.MaxObjects=10000 > > jcs.region.subscriber.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > > jcs.region.subscriber.cacheattributes.UseMemoryShrinker=true > jcs.region.subscriber.cacheattributes.MaxMemoryIdleTimeSeconds=120 > jcs.region.subscriber.cacheattributes.ShrinkerIntervalSeconds=180 > jcs.region.subscriber.cacheattributes.MaxSpoolPerRun=1000 > > jcs.region.subscriber.elementattributes=org.apache.jcs.engine.ElementAttributes > jcs.region.subscriber.elementattributes.IsEternal=false > jcs.region.subscriber.elementattributes.IsRemote=false > jcs.region.subscriber.elementattributes.IsLateral=false > jcs.region.subscriber.elementattributes.IsSpool=false > jcs.region.subscriber.elementattributes.IdleTime=60 > jcs.region.subscriber.elementattributes.MaxLifeSeconds=180 > > # > ## Used for COS, COI > # > jcs.region.shared= > > jcs.region.shared.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > jcs.region.shared.cacheattributes.MaxObjects=500 > > jcs.region.shared.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > > jcs.region.shared.cacheattributes.UseMemoryShrinker=true > jcs.region.shared.cacheattributes.MaxMemoryIdleTimeSeconds=120 > jcs.region.shared.cacheattributes.ShrinkerIntervalSeconds=300 > jcs.region.shared.cacheattributes.MaxSpoolPerRun=1000 > jcs.region.shared.elementattributes=org.apache.jcs.engine.ElementAttributes > jcs.region.shared.elementattributes.IsEternal=false > jcs.region.shared.elementattributes.IsRemote=false > jcs.region.shared.elementattributes.IsLateral=false > jcs.region.shared.elementattributes.IsSpool=false > jcs.region.shared.elementattributes.IdleTime=60 > jcs.region.shared.elementattributes.MaxLifeSeconds=300 > > > >