cinchapi / concourse

Distributed database warehouse for transactions, search and analytics across time.
http://concoursedb.com
Apache License 2.0
315 stars 235 forks source link

ConcurrentModificationException thrown when atomic operation birthed from Transaction commits while receiving concurrent version change notifications (e.g. from Engine accepting Writes) #483

Closed jtnelson closed 2 years ago

jtnelson commented 2 years ago
2022-08-13 19:17:24,366 [Client Worker 299] WARN - The following exception occurred but was not propagated to the client: null
java.util.ConcurrentModificationException: null
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445) ~[na:1.8.0_201]
        at java.util.HashMap$EntryIterator.next(HashMap.java:1479) ~[na:1.8.0_201]
        at java.util.HashMap$EntryIterator.next(HashMap.java:1477) ~[na:1.8.0_201]
        at com.google.common.collect.AbstractMapBasedMultimap$KeySet$1.next(AbstractMapBasedMultimap.java:932) ~[guava-25.1-jre.jar:na]
        at com.cinchapi.concourse.server.storage.Transaction.onVersionChange(Transaction.java:240) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.Engine.notifyVersionChange(Engine.java:659) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.Engine.addUnlocked(Engine.java:1017) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.Engine.accept(Engine.java:374) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.temp.Queue.transport(Queue.java:174) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.AtomicOperation.doCommit(AtomicOperation.java:651) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.Transaction.invokeSuperDoCommit(Transaction.java:420) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.Transaction.doCommit(Transaction.java:366) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.storage.AtomicOperation.commit(AtomicOperation.java:275) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.ConcourseServer.commit(ConcourseServer.java:932) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.ops.CommandIntrospectionAdvice.invoke(CommandIntrospectionAdvice.java:32) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.aop.AccessTokenVerificationAdvice.invoke(AccessTokenVerificationAdvice.java:57) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.server.aop.ClientExceptionTranslationAdvice.invoke(ClientExceptionTranslationAdvice.java:45) ~[concourse-server-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.thrift.ConcourseService$Processor$commit.getResult(ConcourseService.java:34542) [concourse-driver-java-0.11.4.1656977664.jar:0.11.4.1656977664]
        at com.cinchapi.concourse.thrift.ConcourseService$Processor$commit.getResult(ConcourseService.java:34521) [concourse-driver-java-0.11.4.1656977664.jar:0.11.4.1656977664]
        at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38) [libthrift-0.12.0.jar:0.12.0]
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) [libthrift-0.12.0.jar:0.12.0]
        at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:134) [libthrift-0.12.0.jar:0.12.0]
        at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310) [libthrift-0.12.0.jar:0.12.0]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]