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);
}