EHC ❯ client application crashes with ConcurrentModificationException on net.sf.ehcache.pool.impl.AbstractPool.getSize
-
Bug
-
Status: Resolved
-
2 Major
-
Resolution: Fixed
-
ehcache-core
-
-
cdennis
-
Reporter: fmazeira
-
March 01, 2013
-
0
-
Watchers: 7
-
June 06, 2013
-
March 05, 2013
Attachments
Description
During Load test application crash on
2013-02-28 15:35:11,555 [WorkerThread(local_cache_transaction_complete_stage, 2, 0)] ERROR com.tc.object.DistributedObjectClient - Thread:Thread[WorkerThread(local_cache_transaction_complete_stage, 2, 0),5,TC Thread Group] got an uncaught exception. calling CallbackOnExitDefaultHandlers. com.tc.exception.TCRuntimeException: Uncaught exception in stage at com.tc.async.impl.StageImpl$WorkerThread.run(StageImpl.java:168) Caused by: java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at net.sf.ehcache.pool.impl.AbstractPool.getSize(AbstractPool.java:65) at net.sf.ehcache.pool.impl.AtomicPoolAccessor.add(AtomicPoolAccessor.java:52) at net.sf.ehcache.pool.impl.AbstractPoolAccessor.add(AbstractPoolAccessor.java:67) at net.sf.ehcache.store.MemoryStore.put(MemoryStore.java:255) at net.sf.ehcache.store.FrontEndCacheTier.put(FrontEndCacheTier.java:261) at net.sf.ehcache.Cache.putInternal(Cache.java:1454) at net.sf.ehcache.Cache.put(Cache.java:1382) at net.sf.ehcache.Cache.put(Cache.java:1347) at org.terracotta.modules.ehcache.store.servermap.OnlineEhcacheSMLocalStore.put(OnlineEhcacheSMLocalStore.java:53) at org.terracotta.modules.ehcache.store.servermap.EhcacheSMLocalStore.put(EhcacheSMLocalStore.java:87) at com.terracotta.toolkit.collections.servermap.L1ServerMapLocalCacheStoreImpl.put(L1ServerMapLocalCacheStoreImpl.java:131) at com.tc.object.servermap.localcache.impl.ServerMapLocalCacheImpl.putMetaMapping(ServerMapLocalCacheImpl.java:202) at com.tc.object.servermap.localcache.impl.ServerMapLocalCacheImpl.addToCache(ServerMapLocalCacheImpl.java:145) at com.tc.object.servermap.localcache.impl.ServerMapLocalCacheImpl.postTransactionCallback(ServerMapLocalCacheImpl.java:717) at com.tc.object.servermap.localcache.impl.L1ServerMapLocalStoreTransactionCompletionListener.postTransactionCallback(L1ServerMapLocalStoreTransactionCompletionListener.java:50) at com.tc.object.servermap.localcache.impl.L1ServerMapTransactionCompletionHandler.handleEvent(L1ServerMapTransactionCompletionHandler.java:16) at com.tc.async.impl.StageImpl$WorkerThread.run(StageImpl.java:149)
Comments
frederic mazeiras 2013-03-01
Alexander Snaps 2013-03-01
Maybe using a CopyOnWriteArrayList instead would be a less “contended” choice …
frederic mazeiras 2013-03-05
As proposed By Alex an implementation with CopyOnWriteArrayList which slove my problem
Chris Dennis 2013-03-05
Just to clarify - I did not look at either of the user submitted patches/sources before coding the fix.
Fiona OShea 2013-03-05
Frederic please sign and return our contributor agreement http://www.terracotta.org/confluence/download/attachments/27918462/Individual+Contributor+Agreement.pdf?version=2 to have your patch reviewed Regards Fiona
proposal of modification