You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/03/12 02:49:51 UTC

[incubator-iotdb] 01/01: add log file name

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

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

commit 7b3d75837edc3c64a8cbefebe79bd3b09a859aaf
Author: qiaojialin <64...@qq.com>
AuthorDate: Thu Mar 12 10:49:32 2020 +0800

    add log file name
---
 .../org/apache/iotdb/db/engine/merge/task/MergeFileTask.java   |  5 +++--
 .../org/apache/iotdb/tsfile/read/TsFileSequenceReader.java     | 10 ++++++++--
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java
index f7b77e4..9c01908 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java
@@ -118,6 +118,7 @@ class MergeFileTask {
       return;
     }
 
+    TsFileIOWriter oldFileWriter = null;
     seqFile.getWriteQueryLock().writeLock().lock();
     try {
       TsFileMetaDataCache.getInstance().remove(seqFile);
@@ -125,7 +126,6 @@ class MergeFileTask {
       FileReaderManager.getInstance().closeFileAndRemoveReader(seqFile);
 
       resource.removeFileReader(seqFile);
-      TsFileIOWriter oldFileWriter;
       try {
         oldFileWriter = new ForceAppendTsFileWriter(seqFile.getFile());
         mergeLogger.logFileMergeStart(seqFile.getFile(), ((ForceAppendTsFileWriter) oldFileWriter).getTruncatePosition());
@@ -166,7 +166,8 @@ class MergeFileTask {
               new File(nextMergeVersionFile.getAbsolutePath() + TsFileResource.RESOURCE_SUFFIX));
       seqFile.setFile(nextMergeVersionFile);
     } catch (Exception e) {
-      logger.error(e.getMessage(), e);
+      logger.error("merge broken file: " + oldFileWriter.getFile().getAbsolutePath(), e);
+      throw e;
     } finally {
       seqFile.getWriteQueryLock().writeLock().unlock();
     }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 6fd2e43..066e993 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.tsfile.read;
 
+import java.nio.BufferUnderflowException;
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.compress.IUnCompressor;
@@ -260,8 +261,13 @@ public class TsFileSequenceReader implements AutoCloseable {
    */
   public TsFileMetaData readFileMetadata() throws IOException {
     if (tsFileMetaData == null) {
-      tsFileMetaData = TsFileMetaData
-          .deserializeFrom(readData(fileMetadataPos, fileMetadataSize), isOldVersion);
+      try {
+        tsFileMetaData = TsFileMetaData
+            .deserializeFrom(readData(fileMetadataPos, fileMetadataSize), isOldVersion);
+      } catch (BufferUnderflowException e) {
+        logger.error("file metadata deserialize error: " + file);
+        throw e;
+      }
     }
     if (isOldVersion) {
       tsFileMetaData.setTotalChunkNum(countTotalChunkNum());