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

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

commit 741284de7027c95c5fe55b25b526faeb4880d1ba
Author: HTHou <[email protected]>
AuthorDate: Mon May 10 22:37:05 2021 +0800

    Fix upgrade tool cannot load old tsfile if time partition enabled in 0.11
---
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java   | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java
index d7ce4e5..f505ba6 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java
@@ -428,6 +428,16 @@ public class IoTDBConfigCheck {
         if (!storageGroup.isDirectory()) {
           continue;
         }
+        // create virtual storage group folder 0
+        File virtualStorageGroupDir = fsFactory.getFile(storageGroup, "0");
+        if (virtualStorageGroupDir.mkdirs()) {
+          logger.info(
+              "virtual storage directory {} doesn't exist, create it",
+              virtualStorageGroupDir.getPath());
+        } else if (!virtualStorageGroupDir.exists()) {
+          logger.error(
+              "Create virtual storage directory {} failed", 
virtualStorageGroupDir.getPath());
+        }
         for (File partitionDir : storageGroup.listFiles()) {
           if (!partitionDir.isDirectory()) {
             continue;
@@ -446,7 +456,8 @@ public class IoTDBConfigCheck {
           if (oldTsfileArray.length + oldResourceFileArray.length + 
oldModificationFileArray.length
               != 0) {
             // create upgrade directory if not exist
-            File upgradeFolder = fsFactory.getFile(partitionDir, 
IoTDBConstant.UPGRADE_FOLDER_NAME);
+            File upgradeFolder =
+                fsFactory.getFile(virtualStorageGroupDir, 
IoTDBConstant.UPGRADE_FOLDER_NAME);
             if (upgradeFolder.mkdirs()) {
               logger.info("Upgrade Directory {} doesn't exist, create it", 
upgradeFolder.getPath());
             } else if (!upgradeFolder.exists()) {
@@ -471,6 +482,13 @@ public class IoTDBConfigCheck {
               }
             }
           }
+          if (partitionDir.listFiles().length == 0) {
+            try {
+              Files.delete(partitionDir.toPath());
+            } catch (IOException e) {
+              logger.error("Delete {} failed", partitionDir);
+            }
+          }
         }
       }
     }

Reply via email to