This is an automated email from the ASF dual-hosted git repository.
jackietien 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 1147668b15 [IOTDB-3500] Fix delete storage group failure in new
standable IoTDB (#6302)
1147668b15 is described below
commit 1147668b15aa772a733eedcc7fcdcc3e4729cff8
Author: Haonan <[email protected]>
AuthorDate: Thu Jun 16 11:42:53 2022 +0800
[IOTDB-3500] Fix delete storage group failure in new standable IoTDB (#6302)
---
.../apache/iotdb/db/localconfignode/LocalDataPartitionTable.java | 8 ++++++--
.../org/apache/iotdb/db/metadata/schemaregion/SchemaEngine.java | 4 +++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalDataPartitionTable.java
b/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalDataPartitionTable.java
index 0d32dc5114..52662e3f9d 100644
---
a/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalDataPartitionTable.java
+++
b/server/src/main/java/org/apache/iotdb/db/localconfignode/LocalDataPartitionTable.java
@@ -24,6 +24,7 @@ import
org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -104,7 +105,7 @@ public class LocalDataPartitionTable {
}
public List<DataRegionId> getDataRegionIdsByStorageGroup(PartialPath
storageGroup) {
- return new ArrayList<>(table.get(storageGroup));
+ return table.getOrDefault(storageGroup, Collections.emptyList());
}
public synchronized void setDataPartitionInfo(PartialPath storageGroup) {
@@ -119,7 +120,10 @@ public class LocalDataPartitionTable {
}
public synchronized List<DataRegionId> deleteStorageGroup(PartialPath
storageGroup) {
- return table.remove(storageGroup);
+ if (table.containsKey(storageGroup)) {
+ return table.remove(storageGroup);
+ }
+ return Collections.emptyList();
}
// This method may be extended to implement multi dataRegion for one
storageGroup
diff --git
a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaEngine.java
b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaEngine.java
index 3b850584b8..77f9d8a791 100644
---
a/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaEngine.java
+++
b/server/src/main/java/org/apache/iotdb/db/metadata/schemaregion/SchemaEngine.java
@@ -347,7 +347,9 @@ public class SchemaEngine {
});
// remove the empty sg dir
if (regionDirList == null || regionDirList.length == 0) {
- FileUtils.deleteDirectory(sgDir);
+ if (sgDir.exists()) {
+ FileUtils.deleteDirectory(sgDir);
+ }
sharedPrefixTree.deleteStorageGroup(new
PartialPath(schemaRegion.getStorageGroupFullPath()));
}
}