You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Jianxia Chen (Jira)" <ji...@apache.org> on 2020/09/08 20:55:00 UTC
[jira] [Assigned] (GEODE-8482) Concurrent access to ArrayList
should be synchronized
[ https://issues.apache.org/jira/browse/GEODE-8482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jianxia Chen reassigned GEODE-8482:
-----------------------------------
Assignee: Jianxia Chen
> Concurrent access to ArrayList should be synchronized
> -----------------------------------------------------
>
> Key: GEODE-8482
> URL: https://issues.apache.org/jira/browse/GEODE-8482
> Project: Geode
> Issue Type: Bug
> Affects Versions: 1.14.0
> Reporter: Jianxia Chen
> Assignee: Jianxia Chen
> Priority: Major
>
> We have seen ArrayIndexOutOfBoundsException when multiple threads access ArrayList.
> {noformat}
> java.lang.ArrayIndexOutOfBoundsException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:598)
> at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
> at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:735)
> at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
> at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
> at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583)
> at org.apache.geode.internal.cache.xmlcache.CacheCreation.createDiskStores(CacheCreation.java:647)
> at org.apache.geode.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:531)
> at org.apache.geode.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:339)
> at org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4200)
> at org.apache.geode.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1621)
> at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1447)
> at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
> at org.apache.geode.internal.cache.CacheFactoryStatics.create(CacheFactoryStatics.java:61)
> at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:352)
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 15
> at java.util.ArrayList.add(ArrayList.java:465)
> at org.apache.geode.internal.cache.control.InternalResourceManager.addStartupTask(InternalResourceManager.java:640)
> at org.apache.geode.internal.cache.DiskStoreImpl.scheduleValueRecovery(DiskStoreImpl.java:2088)
> at org.apache.geode.internal.cache.PersistentOplogSet.recoverOplogs(PersistentOplogSet.java:520)
> at org.apache.geode.internal.cache.PersistentOplogSet.recoverRegionsThatAreReady(PersistentOplogSet.java:379)
> at org.apache.geode.internal.cache.DiskStoreImpl.recoverRegionsThatAreReady(DiskStoreImpl.java:2076)
> at org.apache.geode.internal.cache.DiskStoreImpl.initializeIfNeeded(DiskStoreImpl.java:2064)
> at org.apache.geode.internal.cache.DiskStoreImpl.doInitialRecovery(DiskStoreImpl.java:2069)
> at org.apache.geode.internal.cache.DiskStoreFactoryImpl.initializeDiskStore(DiskStoreFactoryImpl.java:192)
> at org.apache.geode.internal.cache.DiskStoreFactoryImpl.create(DiskStoreFactoryImpl.java:156)
> at org.apache.geode.internal.cache.xmlcache.CacheCreation.createDiskStore(CacheCreation.java:834)
> at org.apache.geode.internal.cache.xmlcache.CacheCreation.lambda$createDiskStores$0(CacheCreation.java:650)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
> at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
> at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
> at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
> at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)