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

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


The following commit(s) were added to refs/heads/master by this push:
     new 97141c7  fix can not recover because of error wal and add log (#1228)
97141c7 is described below

commit 97141c726462e16b432dc8b7bd581b2dd6ee1157
Author: Jialin Qiao <[email protected]>
AuthorDate: Tue May 19 22:52:19 2020 +0800

    fix can not recover because of error wal and add log (#1228)
    
    * fix recover and add log
---
 .../java/org/apache/iotdb/db/engine/StorageEngine.java   | 16 ++++++++++------
 .../apache/iotdb/db/writelog/io/SingleFileLogReader.java |  7 +++----
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java 
b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
index 89419ec..a1cc16c 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
@@ -148,12 +148,16 @@ public class StorageEngine implements IService {
     List<Future> futures = new ArrayList<>();
     for (StorageGroupMNode storageGroup : sgNodes) {
       futures.add(recoveryThreadPool.submit((Callable<Void>) () -> {
-        StorageGroupProcessor processor = new StorageGroupProcessor(systemDir,
-            storageGroup.getFullPath(), fileFlushPolicy);
-        processor.setDataTTL(storageGroup.getDataTTL());
-        processorMap.put(storageGroup.getFullPath(), processor);
-        logger.info("Storage Group Processor {} is recovered successfully",
-            storageGroup.getFullPath());
+        try {
+          StorageGroupProcessor processor = new 
StorageGroupProcessor(systemDir,
+              storageGroup.getFullPath(), fileFlushPolicy);
+          processor.setDataTTL(storageGroup.getDataTTL());
+          processorMap.put(storageGroup.getFullPath(), processor);
+          logger.info("Storage Group Processor {} is recovered successfully",
+              storageGroup.getFullPath());
+        } catch (Exception e) {
+          logger.error("meet error when recovering storage group: {}", 
storageGroup, e);
+        }
         return null;
       }));
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/writelog/io/SingleFileLogReader.java 
b/server/src/main/java/org/apache/iotdb/db/writelog/io/SingleFileLogReader.java
index 1179556..e398413 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/writelog/io/SingleFileLogReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/writelog/io/SingleFileLogReader.java
@@ -87,15 +87,14 @@ public class SingleFileLogReader implements ILogReader {
             + "file: "
             + "%d Calculated: %d.", idx, checkSum, checkSummer.getValue()));
       }
+
+      batchLogReader = new BatchLogReader(ByteBuffer.wrap(buffer));
+      fileCorrupted = fileCorrupted || batchLogReader.isFileCorrupted();
     } catch (IOException e) {
       logger.error("Cannot read more PhysicalPlans from {} because", filepath, 
e);
       fileCorrupted = true;
       return false;
     }
-
-    batchLogReader = new BatchLogReader(ByteBuffer.wrap(buffer));
-    fileCorrupted = fileCorrupted || batchLogReader.isFileCorrupted();
-
     return true;
   }
 

Reply via email to