This is an automated email from the ASF dual-hosted git repository.
zyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new b023bb390c [IOTDB-4744] Fix schema register validation bug (#7816)
b023bb390c is described below
commit b023bb390c5a733455edcca69800c7ee2fe6109c
Author: Marcos_Zyk <[email protected]>
AuthorDate: Mon Oct 31 20:12:23 2022 +0800
[IOTDB-4744] Fix schema register validation bug (#7816)
[IOTDB-4744] Fix schema register validation bug (#7816)
---
.../db/mpp/execution/executor/RegionWriteExecutor.java | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java
index a721400bb7..55edb9c7b5 100644
---
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java
+++
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java
@@ -69,6 +69,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.stream.Collectors;
public class RegionWriteExecutor {
@@ -348,14 +349,17 @@ public class RegionWriteExecutor {
}
// filter failed measurement and keep the rest for execution
- for (Map.Entry<Integer, MetadataException> failingMeasurement :
- failingMeasurementMap.entrySet()) {
- entry.getValue().removeMeasurement(failingMeasurement.getKey());
- LOGGER.error("Metadata error: ", failingMeasurement.getValue());
+ List<Integer> failingMeasurementIndexList =
+
failingMeasurementMap.keySet().stream().sorted().collect(Collectors.toList());
+ int removedNum = 0;
+ for (Integer index : failingMeasurementIndexList) {
+ entry.getValue().removeMeasurement(index - removedNum);
+ removedNum++;
+ LOGGER.error("Metadata error: ",
failingMeasurementMap.get(index));
failingStatus.add(
RpcUtils.getStatus(
- failingMeasurement.getValue().getErrorCode(),
- failingMeasurement.getValue().getMessage()));
+ failingMeasurementMap.get(index).getErrorCode(),
+ failingMeasurementMap.get(index).getMessage()));
}
if (entry.getValue().isEmpty()) {