You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2022/08/19 03:22:08 UTC

[iotdb] branch master updated: fix path (#7049)

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

xingtanzjr 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 9e0512a144 fix path (#7049)
9e0512a144 is described below

commit 9e0512a1442e957951a485ddbc42b0d1f5012748
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Fri Aug 19 11:22:02 2022 +0800

    fix path (#7049)
---
 .../iotdb/db/wal/recover/WALNodeRecoverTask.java     |  3 +--
 .../iotdb/db/wal/recover/WALRecoverManager.java      | 20 +++++++++++++++++---
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/wal/recover/WALNodeRecoverTask.java b/server/src/main/java/org/apache/iotdb/db/wal/recover/WALNodeRecoverTask.java
index cdc9d92cca..d5a13e2596 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/recover/WALNodeRecoverTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/wal/recover/WALNodeRecoverTask.java
@@ -199,9 +199,8 @@ public class WALNodeRecoverTask implements Runnable {
     for (MemTableInfo memTableInfo : memTableId2Info.values()) {
       firstValidVersionId = Math.min(firstValidVersionId, memTableInfo.getFirstFileVersionId());
 
-      File tsFile = new File(memTableInfo.getTsFilePath());
       UnsealedTsFileRecoverPerformer recoverPerformer =
-          walRecoverManger.removeRecoverPerformer(tsFile.getAbsolutePath());
+          walRecoverManger.removeRecoverPerformer(new File(memTableInfo.getTsFilePath()));
       if (recoverPerformer != null) {
         memTableId2RecoverPerformer.put(memTableInfo.getMemTableId(), recoverPerformer);
       }
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/recover/WALRecoverManager.java b/server/src/main/java/org/apache/iotdb/db/wal/recover/WALRecoverManager.java
index e4a43dae39..27e54202ca 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/recover/WALRecoverManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/wal/recover/WALRecoverManager.java
@@ -176,13 +176,27 @@ public class WALRecoverManager {
     if (hasStarted) {
       logger.error("Cannot recover tsfile from wal because wal recovery has already started");
     } else {
-      absolutePath2RecoverPerformer.put(recoverPerformer.getTsFileAbsolutePath(), recoverPerformer);
+      try {
+        String canonicalPath = recoverPerformer.getTsFileResource().getTsFile().getCanonicalPath();
+        absolutePath2RecoverPerformer.put(canonicalPath, recoverPerformer);
+      } catch (IOException e) {
+        logger.error(
+            "Fail to add recover performer for file {}",
+            recoverPerformer.getTsFileAbsolutePath(),
+            e);
+      }
     }
     return recoverPerformer.getRecoverListener();
   }
 
-  UnsealedTsFileRecoverPerformer removeRecoverPerformer(String absolutePath) {
-    return absolutePath2RecoverPerformer.remove(absolutePath);
+  UnsealedTsFileRecoverPerformer removeRecoverPerformer(File file) {
+    try {
+      String canonicalPath = file.getCanonicalPath();
+      return absolutePath2RecoverPerformer.remove(canonicalPath);
+    } catch (IOException e) {
+      logger.error("Fail to remove recover performer for file {}", file, e);
+    }
+    return null;
   }
 
   public CountDownLatch getAllDataRegionScannedLatch() {