This is an automated email from the ASF dual-hosted git repository.

xingtanzjr pushed a commit to branch ml_0729_test
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/ml_0729_test by this push:
     new 5536f5a61e fix potential error when using condition
5536f5a61e is described below

commit 5536f5a61e0920894d6687d46716396de97288b2
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Fri Jul 29 18:49:24 2022 +0800

    fix potential error when using condition
---
 .../db/consensus/statemachine/DataRegionStateMachine.java  | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
 
b/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
index b83fbf1a0e..852f421b33 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.consensus.common.DataSet;
 import org.apache.iotdb.consensus.common.request.IConsensusRequest;
 import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest;
+import org.apache.iotdb.consensus.multileader.wal.ConsensusReqReader;
 import org.apache.iotdb.consensus.multileader.wal.GetConsensusReqReaderPlan;
 import org.apache.iotdb.db.consensus.statemachine.visitor.DataExecutionVisitor;
 import org.apache.iotdb.db.engine.StorageEngineV2;
@@ -117,8 +118,8 @@ public class DataRegionStateMachine extends 
BaseStateMachine {
   }
 
   private InsertNode cacheAndGetLatestInsertNode(long syncIndex, InsertNode 
insertNode) {
+    lock.lock();
     try {
-      lock.lock();
       requestCache.add(new InsertNodeWrapper(syncIndex, insertNode));
       while (!(requestCache.size() >= MAX_REQUEST_CACHE_SIZE
           && requestCache.peek().getSyncIndex() == syncIndex)) {
@@ -175,10 +176,13 @@ public class DataRegionStateMachine extends 
BaseStateMachine {
           innerNode.setSearchIndex(indexedRequest.getSearchIndex());
           insertNodes.add(innerNode);
         }
-        //        planNode = mergeInsertNodes(insertNodes);
-        planNode =
-            cacheAndGetLatestInsertNode(
-                indexedRequest.getSyncIndex(), mergeInsertNodes(insertNodes));
+        if (indexedRequest.getSearchIndex() == 
ConsensusReqReader.DEFAULT_SEARCH_INDEX) {
+          planNode =
+              cacheAndGetLatestInsertNode(
+                  indexedRequest.getSyncIndex(), 
mergeInsertNodes(insertNodes));
+        } else {
+          planNode = mergeInsertNodes(insertNodes);
+        }
       } else {
         planNode = getPlanNode(request);
       }

Reply via email to