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

rong pushed a commit to branch 1.2-slow-startup
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit c5807330cc80592d41f3e20c059b3a4bb44e7026
Author: Steve Yurong Su <[email protected]>
AuthorDate: Mon Jun 26 21:51:52 2023 +0800

    dirty fix
---
 .../file/PipeHardlinkFileDirStartupCleaner.java    | 31 +++++++++++++++-------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java
 
b/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java
index 179135e5c6f..667468fc885 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/pipe/resource/file/PipeHardlinkFileDirStartupCleaner.java
@@ -28,6 +28,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.util.concurrent.CompletableFuture;
 
 public class PipeHardlinkFileDirStartupCleaner {
 
@@ -39,24 +40,36 @@ public class PipeHardlinkFileDirStartupCleaner {
    * PipeConfig.PIPE_TSFILE_DIR_NAME directory.
    */
   public static void clean() {
+    CompletableFuture.runAsync(PipeHardlinkFileDirStartupCleaner::doClean);
+  }
+
+  private static void doClean() {
+    long totalStartTs = System.currentTimeMillis();
     for (String dataDir : 
IoTDBDescriptor.getInstance().getConfig().getDataDirs()) {
       long startTs = System.currentTimeMillis();
       LOGGER.info("PipeHardlinkFileDirStartupCleaner.clean started, dataDir: 
{}", dataDir);
-      for (File file :
-          FileUtils.listFilesAndDirs(
-              new File(dataDir), DirectoryFileFilter.INSTANCE, 
DirectoryFileFilter.INSTANCE)) {
-        if (file.isDirectory()
-            && 
file.getName().equals(PipeConfig.getInstance().getPipeHardlinkTsFileDirName())) 
{
-          LOGGER.info(
-              "pipe hardlink tsfile dir found, deleting it: {}, result: {}",
-              file,
-              FileUtils.deleteQuietly(file));
+      try {
+        for (File file :
+            FileUtils.listFilesAndDirs(
+                new File(dataDir), DirectoryFileFilter.INSTANCE, 
DirectoryFileFilter.INSTANCE)) {
+          if (file.isDirectory()
+              && 
file.getName().equals(PipeConfig.getInstance().getPipeHardlinkTsFileDirName())) 
{
+            LOGGER.info(
+                "pipe hardlink tsfile dir found, deleting it: {}, result: {}",
+                file,
+                FileUtils.deleteQuietly(file));
+          }
         }
+      } catch (Exception e) {
+        LOGGER.warn("PipeHardlinkFileDirStartupCleaner.clean failed", e);
       }
       LOGGER.info(
           "PipeHardlinkFileDirStartupCleaner finished, cost: {}ms",
           System.currentTimeMillis() - startTs);
     }
+    LOGGER.info(
+        "PipeHardlinkFileDirStartupCleaner finished, total cost: {}ms",
+        System.currentTimeMillis() - totalStartTs);
   }
 
   private PipeHardlinkFileDirStartupCleaner() {

Reply via email to