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

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


The following commit(s) were added to refs/heads/master by this push:
     new d78413ec657 Print log when read resource error (#12666)
d78413ec657 is described below

commit d78413ec65733ba3e142750ed1d42c2395f2cf09
Author: Haonan <[email protected]>
AuthorDate: Wed Jun 5 20:19:40 2024 +0800

    Print log when read resource error (#12666)
---
 .../dataregion/tsfile/TsFileResource.java          | 22 ++++++++++++++++++++--
 .../tsfile/timeindex/DeviceTimeIndex.java          | 16 ++++++++++++++++
 .../dataregion/tsfile/timeindex/FileTimeIndex.java |  5 +++++
 3 files changed, 41 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
index cdb5bca403e..45c319ec4b8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
@@ -388,12 +388,30 @@ public class TsFileResource {
   }
 
   public long getStartTime(IDeviceID deviceId) {
-    return deviceId == null ? getFileStartTime() : 
timeIndex.getStartTime(deviceId);
+    try {
+      return deviceId == null ? getFileStartTime() : 
timeIndex.getStartTime(deviceId);
+    } catch (Exception e) {
+      LOGGER.error(
+          "meet error when getStartTime of {} in file {}", deviceId, 
file.getAbsolutePath(), e);
+      if (LOGGER.isDebugEnabled()) {
+        LOGGER.debug("TimeIndex = {}", timeIndex);
+      }
+      throw e;
+    }
   }
 
   /** open file's end time is Long.MIN_VALUE */
   public long getEndTime(IDeviceID deviceId) {
-    return deviceId == null ? getFileEndTime() : 
timeIndex.getEndTime(deviceId);
+    try {
+      return deviceId == null ? getFileEndTime() : 
timeIndex.getEndTime(deviceId);
+    } catch (Exception e) {
+      LOGGER.error(
+          "meet error when getEndTime of {} in file {}", deviceId, 
file.getAbsolutePath(), e);
+      if (LOGGER.isDebugEnabled()) {
+        LOGGER.debug("TimeIndex = {}", timeIndex);
+      }
+      throw e;
+    }
   }
 
   public long getOrderTime(IDeviceID deviceId, boolean ascending) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
index 6b36f9ae56e..f233261d076 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
@@ -450,4 +450,20 @@ public class DeviceTimeIndex implements ITimeIndex {
   public byte getTimeIndexType() {
     return DEVICE_TIME_INDEX_TYPE;
   }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append(" DeviceIndexMapSize = ").append(deviceToIndex.size());
+    builder.append(" startTimeLength = ").append(startTimes.length);
+    builder.append(" endTimeLength = ").append(endTimes.length);
+    builder.append(" DeviceIndexMap = [");
+    deviceToIndex.forEach(
+        (key, value) ->
+            builder.append(" device = ").append(key).append(", index = 
").append(value));
+    builder.append("]");
+    builder.append(" StartTimes = ").append(Arrays.toString(startTimes));
+    builder.append(" EndTimes = ").append(Arrays.toString(endTimes));
+    return builder.toString();
+  }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
index 679413d462c..c6ffb6821f8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
@@ -247,4 +247,9 @@ public class FileTimeIndex implements ITimeIndex {
   public byte getTimeIndexType() {
     return FILE_TIME_INDEX_TYPE;
   }
+
+  @Override
+  public String toString() {
+    return " StartTime = " + startTime + " EndTime = " + endTime;
+  }
 }

Reply via email to