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

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


The following commit(s) were added to refs/heads/reimpl_sync_V2 by this push:
     new f8bdccb  fix a bug
f8bdccb is described below

commit f8bdccb839405ba8c485557b2b5b451cfd61caf2
Author: lta <[email protected]>
AuthorDate: Tue Oct 22 21:05:45 2019 +0800

    fix a bug
---
 .../iotdb/db/engine/storagegroup/StorageGroupProcessor.java   |  8 ++++----
 .../org/apache/iotdb/db/sync/receiver/load/FileLoader.java    | 11 ++++++-----
 .../db/sync/receiver/recover/SyncReceiverLogAnalyzer.java     |  8 +++++++-
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 9ed03df..3e9dda9 100755
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -1266,8 +1266,8 @@ public class StorageGroupProcessor {
         FileUtils.moveFile(syncedTsFile, targetFile);
       } catch (IOException e) {
         throw new TsFileProcessorException(String.format(
-            "File renaming failed when loading tsfile. Origin: %s, Target: %s",
-            syncedTsFile.getAbsolutePath(), targetFile.getAbsolutePath()));
+            "File renaming failed when loading tsfile. Origin: %s, Target: %s, 
because %s",
+            syncedTsFile.getAbsolutePath(), targetFile.getAbsolutePath(), 
e.getMessage()));
       }
     }
     try {
@@ -1275,9 +1275,9 @@ public class StorageGroupProcessor {
           new File(targetFile.getAbsolutePath() + 
TsFileResource.RESOURCE_SUFFIX));
     } catch (IOException e) {
       throw new TsFileProcessorException(String.format(
-          "File renaming failed when loading .resource file. Origin: %s, 
Target: %s",
+          "File renaming failed when loading .resource file. Origin: %s, 
Target: %s, because %s",
           new File(syncedTsFile + 
TsFileResource.RESOURCE_SUFFIX).getAbsolutePath(),
-          new File(targetFile + 
TsFileResource.RESOURCE_SUFFIX).getAbsolutePath()));
+          new File(targetFile + 
TsFileResource.RESOURCE_SUFFIX).getAbsolutePath(), e.getMessage()));
     }
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java 
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
index 20b2801..bf202cb 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoader.java
@@ -44,7 +44,7 @@ public class FileLoader implements IFileLoader {
 
   private static final Logger LOGGER = 
LoggerFactory.getLogger(FileLoader.class);
 
-  private static final int WAIT_TIME = 100;
+  public static final int WAIT_TIME = 100;
 
   private String syncFolderPath;
 
@@ -62,18 +62,19 @@ public class FileLoader implements IFileLoader {
     this.senderName = senderName;
     this.syncFolderPath = syncFolderPath;
     this.loadLog = new LoadLogger(new File(syncFolderPath, 
SyncConstant.LOAD_LOG_NAME));
-    FileLoaderManager.getInstance().addFileLoader(senderName, this);
-    FileLoaderManager.getInstance().addLoadTaskRunner(loadTaskRunner);
   }
 
   public static FileLoader createFileLoader(String senderName, String 
syncFolderPath)
       throws IOException {
-    return new FileLoader(senderName, syncFolderPath);
+    FileLoader fileLoader = new FileLoader(senderName, syncFolderPath);
+    FileLoaderManager.getInstance().addFileLoader(senderName, fileLoader);
+    
FileLoaderManager.getInstance().addLoadTaskRunner(fileLoader.loadTaskRunner);
+    return fileLoader;
   }
 
   public static FileLoader createFileLoader(File syncFolder)
       throws IOException {
-    return new FileLoader(syncFolder.getName(), syncFolder.getAbsolutePath());
+    return createFileLoader(syncFolder.getName(), 
syncFolder.getAbsolutePath());
   }
 
   private Runnable loadTaskRunner = () -> {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
 
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
index 7a85570..af5b504 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzer.java
@@ -72,12 +72,18 @@ public class SyncReceiverLogAnalyzer implements 
ISyncReceiverLogAnalyzer {
     }
     if 
(FileLoaderManager.getInstance().containsFileLoader(senderFolder.getName())) {
       
FileLoaderManager.getInstance().getFileLoader(senderFolder.getName()).endSync();
+      try {
+        Thread.sleep(FileLoader.WAIT_TIME << 1);
+      } catch (InterruptedException e) {
+        LOGGER.error("Thread is interrupted from waiting for ending sync in 
recovery.");
+      }
     } else {
+      // TODO 有问题!!!
       scanLogger(FileLoader.createFileLoader(senderFolder),
           new File(senderFolder, SyncConstant.SYNC_LOG_NAME),
           new File(senderFolder, SyncConstant.LOAD_LOG_NAME));
     }
-    return 
FileLoaderManager.getInstance().containsFileLoader(senderFolder.getName());
+    return 
!FileLoaderManager.getInstance().containsFileLoader(senderFolder.getName());
   }
 
   @Override

Reply via email to