When DBS does a query that returns the same document more than once, a crash may occur:
java.lang.IllegalArgumentException: Multiple entries with same key: e0014b27-5569-4614-95f6-7eaa0c58fcc8=35 and e0014b27-5569-4614-95f6-7eaa0c58fcc8=9 at com.google.common.collect.ImmutableMap.conflictException(ImmutableMap.java:216) ~[guava-28.2-jre.jar:?] at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:210) ~[guava-28.2-jre.jar:?] at com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:146) ~[guava-28.2-jre.jar:?] at com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:109) ~[guava-28.2-jre.jar:?] at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:395) ~[guava-28.2-jre.jar:?] at com.google.common.collect.Maps.indexMap(Maps.java:4225) ~[guava-28.2-jre.jar:?] at com.google.common.collect.ExplicitOrdering.<init>(ExplicitOrdering.java:30) ~[guava-28.2-jre.jar:?] at com.google.common.collect.Ordering.explicit(Ordering.java:220) ~[guava-28.2-jre.jar:?] at org.nuxeo.ecm.core.storage.dbs.DBSCachingConnection.readStates(DBSCachingConnection.java:185) ~[nuxeo-core-storage-dbs-11.3.26.jar:?] at org.nuxeo.ecm.core.storage.dbs.DBSTransactionState.getStatesForUpdate(DBSTransactionState.java:251) ~[nuxeo-core-storage-dbs-11.3.26.jar:?] at org.nuxeo.ecm.core.storage.dbs.DBSSession.getDocuments(DBSSession.java:448) ~[nuxeo-core-storage-dbs-11.3.26.jar:?] at org.nuxeo.ecm.core.storage.dbs.DBSSession.query(DBSSession.java:1628) ~[nuxeo-core-storage-dbs-11.3.26.jar:?] at org.nuxeo.ecm.core.storage.dbs.DBSSession.query(DBSSession.java:171) ~[nuxeo-core-storage-dbs-11.3.26.jar:?] at jdk.internal.reflect.GeneratedMethodAccessor98.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] at org.nuxeo.ecm.core.storage.dbs.DBSRepositoryBase$DBSSessionInvoker.invoke(DBSRepositoryBase.java:487) ~[nuxeo-core-storage-dbs-11.3.26.jar:?] at com.sun.proxy.$Proxy78.query(Unknown Source) ~[?:?] at org.nuxeo.ecm.core.api.AbstractSession.tracedQuery(AbstractSession.java:1233) ~[nuxeo-core-11.3.26.jar:?] at org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1206) ~[nuxeo-core-11.3.26.jar:?] at org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1145) ~[nuxeo-core-11.3.26.jar:?] at org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1138) ~[nuxeo-core-11.3.26.jar:?] at org.nuxeo.ecm.core.api.AbstractSession.query(AbstractSession.java:1118) ~[nuxeo-core-11.3.26.jar:?] at org.nuxeo.ecm.core.bulk.action.computation.AbstractBulkComputation.loadDocuments(AbstractBulkComputation.java:189) ~[nuxeo-core-bulk-11.3.26.jar:?] at org.nuxeo.elasticsearch.bulk.IndexRequestComputation.compute(IndexRequestComputation.java:89) ~[nuxeo-elasticsearch-core-11.3.26.jar:?] at org.nuxeo.ecm.core.bulk.action.computation.AbstractBulkComputation.lambda$processBatchOfDocuments$1(AbstractBulkComputation.java:141) ~[nuxeo-core-bulk-11.3.26.jar:?] at org.nuxeo.runtime.transaction.TransactionHelper.lambda$runInTransaction$5(TransactionHelper.java:580) ~[nuxeo-runtime-jtajca-11.3.26.jar:?] at org.nuxeo.runtime.transaction.TransactionHelper.runInTransaction(TransactionHelper.java:600) ~[nuxeo-runtime-jtajca-11.3.26.jar:?] at org.nuxeo.runtime.transaction.TransactionHelper.runInTransaction(TransactionHelper.java:580) ~[nuxeo-runtime-jtajca-11.3.26.jar:?] at org.nuxeo.ecm.core.bulk.action.computation.AbstractBulkComputation.processBatchOfDocuments(AbstractBulkComputation.java:135) ~[nuxeo-core-bulk-11.3.26.jar:?] at org.nuxeo.ecm.core.bulk.action.computation.AbstractBulkComputation.processRecord(AbstractBulkComputation.java:98) ~[nuxeo-core-bulk-11.3.26.jar:?] at org.nuxeo.lib.stream.computation.log.ComputationRunner.lambda$processRecordWithRetry$10(ComputationRunner.java:463) ~[nuxeo-stream-11.3.26.jar:?] at net.jodah.failsafe.Functions$10.call(Functions.java:252) ~[failsafe-1.1.0.jar:1.1.0] at net.jodah.failsafe.SyncFailsafe.call(SyncFailsafe.java:145) [failsafe-1.1.0.jar:1.1.0] at net.jodah.failsafe.SyncFailsafe.run(SyncFailsafe.java:81) [failsafe-1.1.0.jar:1.1.0] at org.nuxeo.lib.stream.computation.log.ComputationRunner.processRecordWithRetry(ComputationRunner.java:463) [nuxeo-stream-11.3.26.jar:?] at org.nuxeo.lib.stream.computation.log.ComputationRunner.processRecordWithTracing(ComputationRunner.java:415) [nuxeo-stream-11.3.26.jar:?] at org.nuxeo.lib.stream.computation.log.ComputationRunner.processRecord(ComputationRunner.java:406) [nuxeo-stream-11.3.26.jar:?] at org.nuxeo.lib.stream.computation.log.ComputationRunner.processLoop(ComputationRunner.java:270) [nuxeo-stream-11.3.26.jar:?] at org.nuxeo.lib.stream.computation.log.ComputationRunner.run(ComputationRunner.java:206) [nuxeo-stream-11.3.26.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:834) [?:?]