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:50 UTC

[incubator-iotdb] branch debug_metero created (now 7b3d758)

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

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


      at 7b3d758  add log file name

This branch includes the following new commits:

     new 7b3d758  add log file name

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by qi...@apache.org.
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());