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

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

commit 46115d079e07edbd9927078b289e1dae08ab2ad0
Author: HTHou <[email protected]>
AuthorDate: Thu Jul 23 09:31:33 2020 +0800

    fix upgrading mlog many times
---
 .../main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java | 12 ++++++++++++
 .../main/java/org/apache/iotdb/db/metadata/MLogWriter.java   |  8 --------
 2 files changed, 12 insertions(+), 8 deletions(-)

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 e97a52d..6e6f3c9 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
@@ -191,6 +191,18 @@ public class IoTDBConfigCheck {
       checkUnClosedTsFileV1();
       MLogWriter.upgradeMLog(SCHEMA_DIR, MetadataConstant.METADATA_LOG);
       upgradePropertiesFile();
+
+      // upgrade mlog finished, delete old mlog file
+      File mlogFile = SystemFileFactory.INSTANCE.getFile(SCHEMA_DIR + 
File.separator
+          + MetadataConstant.METADATA_LOG);
+      File tmpMLogFile = 
SystemFileFactory.INSTANCE.getFile(mlogFile.getAbsolutePath()
+          + ".tmp");
+
+      if (!mlogFile.delete()) {
+        throw new IOException("Deleting " + mlogFile + "failed.");
+      }
+      // rename tmpLogFile to mlog
+      FSFactoryProducer.getFSFactory().moveFile(tmpMLogFile, mlogFile);
     }
     checkProperties();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java
index 6b41a44..c00206e 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java
@@ -152,14 +152,6 @@ public class MLogWriter {
         writer.flush();
       }
     }
-
-    // upgrade finished, delete old mlog file
-    if (!logFile.delete()) {
-      throw new IOException("Deleting " + logFile + "failed.");
-    }
-
-    // rename tmpLogFile to mlog
-    FSFactoryProducer.getFSFactory().moveFile(tmpLogFile, logFile);
   }
 
   public void clear() throws IOException {

Reply via email to