jakarta-jcs-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rohit Joshi <rohit.c.jo...@gmail.com>
Subject Re: JCS cache causes thread deadlock
Date Tue, 10 Nov 2009 16:44:06 GMT
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.joshi@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.CompositeCache@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.CompositeCache@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.CompositeCache@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.CompositeCache@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.CompositeCache@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
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message