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)