You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2019/11/20 07:33:37 UTC

[incubator-iotdb] branch 0.8.2 updated: [IoTDB-264] part 2: skip bad log record

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

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


The following commit(s) were added to refs/heads/0.8.2 by this push:
     new 3ac0e79  [IoTDB-264] part 2: skip bad log record
3ac0e79 is described below

commit 3ac0e79779f25ee256ce4dbbb02ba50793be005c
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Wed Nov 20 15:32:49 2019 +0800

    [IoTDB-264] part 2: skip bad log record
---
 .../org/apache/iotdb/db/writelog/recover/LogReplayer.java  | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
index b0e63eb..c81da53 100644
--- a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
@@ -24,10 +24,10 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.memtable.IMemTable;
 import org.apache.iotdb.db.engine.modification.Deletion;
 import org.apache.iotdb.db.engine.modification.ModificationFile;
+import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.version.VersionController;
 import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
@@ -40,13 +40,15 @@ import org.apache.iotdb.db.writelog.node.WriteLogNode;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.Path;
 import org.apache.iotdb.tsfile.write.schema.FileSchema;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * LogReplayer finds the logNode of the TsFile given by insertFilePath and logNodePrefix, reads
  * the WALs from the logNode and redoes them into a given MemTable and ModificationFile.
  */
 public class LogReplayer {
-
+  Logger logger = LoggerFactory.getLogger(LogReplayer.class);
   private String logNodePrefix;
   private String insertFilePath;
   private ModificationFile modFile;
@@ -135,7 +137,13 @@ public class LogReplayer {
       dataTypes[i] = fileSchema.getMeasurementDataType(measurementList[i]);
     }
     insertPlan.setDataTypes(dataTypes);
-    recoverMemTable.insert(insertPlan);
+    try {
+      recoverMemTable.insert(insertPlan);
+    } catch (Exception e) {
+      logger.error(
+          "occurs exception when replaying the record {} at timestamp {}: {}.(Will ignore the record)",
+          insertPlan.getPaths(), insertPlan.getTime(), e.getMessage());
+    }
   }
 
   @SuppressWarnings("unused")