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

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


The following commit(s) were added to refs/heads/ZYBug by this push:
     new 0ca9dc4  add merge datatype error log
     new 58d716a  Merge pull request #1886 from zhanglingzhe0820/ZYBug
0ca9dc4 is described below

commit 0ca9dc462aeb0e9969edd05c1a15acf129eda65a
Author: 张凌哲 <[email protected]>
AuthorDate: Wed Oct 28 17:12:29 2020 +0800

    add merge datatype error log
---
 .../query/reader/universal/CachedPriorityMergeReader.java  | 14 +++++++++++++-
 .../main/java/org/apache/iotdb/db/utils/MergeUtils.java    |  4 ++++
 .../main/java/org/apache/iotdb/db/utils/QueryUtils.java    |  6 ++++++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/reader/universal/CachedPriorityMergeReader.java
 
b/server/src/main/java/org/apache/iotdb/db/query/reader/universal/CachedPriorityMergeReader.java
index 887dd85..7882339 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/reader/universal/CachedPriorityMergeReader.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/reader/universal/CachedPriorityMergeReader.java
@@ -23,12 +23,15 @@ import java.io.IOException;
 import org.apache.iotdb.tsfile.read.TimeValuePair;
 import org.apache.iotdb.db.utils.TimeValuePairUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * CachedPriorityMergeReader use a cache to reduce unnecessary heap updates 
and increase locality.
  */
 public class CachedPriorityMergeReader extends PriorityMergeReader {
 
+  private static final Logger logger = 
LoggerFactory.getLogger(CachedPriorityMergeReader.class);
   private static final int CACHE_SIZE = 100;
 
   private TimeValuePair[] timeValuePairCache = new TimeValuePair[CACHE_SIZE];
@@ -54,7 +57,16 @@ public class CachedPriorityMergeReader extends 
PriorityMergeReader {
     while (!heap.isEmpty() && cacheLimit < CACHE_SIZE) {
       Element top = heap.peek();
       if (lastTimestamp == null || top.currTime() != lastTimestamp) {
-        TimeValuePairUtils.setTimeValuePair(top.timeValuePair, 
timeValuePairCache[cacheLimit++]);
+        TimeValuePair fromTimeValuePair = top.timeValuePair;
+        TimeValuePair toTimeValuePair = timeValuePairCache[cacheLimit++];
+        try {
+          TimeValuePairUtils.setTimeValuePair(fromTimeValuePair, 
toTimeValuePair);
+        } catch (UnsupportedOperationException e) {
+          logger.error("set data error,from: time = {}, dataType = {}",
+              fromTimeValuePair.getTimestamp(), 
fromTimeValuePair.getValue().getDataType());
+          logger.error("set data error,from: to = {}, dataType = {}",
+              toTimeValuePair.getTimestamp(), 
toTimeValuePair.getValue().getDataType());
+        }
         lastTimestamp = top.currTime();
       }
       // remove duplicates
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/MergeUtils.java 
b/server/src/main/java/org/apache/iotdb/db/utils/MergeUtils.java
index a5a0f0a..fa1b285 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/MergeUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/MergeUtils.java
@@ -192,6 +192,10 @@ public class MergeUtils {
         QueryUtils.modifyChunkMetaData(metaDataList, pathModifications);
       }
       MetaListEntry entry = new MetaListEntry(i, metaDataList);
+      for (ChunkMetadata chunkMetadata : metaDataList) {
+        logger.info("buildMetaHeap add chunkMetadata,startTime:{} endTime:{} 
dataType:{}",
+            chunkMetadata.getStartTime(), chunkMetadata.getEndTime(), 
chunkMetadata.getDataType());
+      }
       if (entry.hasNext()) {
         entry.next();
         chunkMetaHeap.add(entry);
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java 
b/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java
index 7a3a6c5..f28e90a 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java
@@ -27,9 +27,13 @@ import org.apache.iotdb.db.query.filter.TsFileFilter;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
 
 import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class QueryUtils {
 
+  private static final Logger logger = 
LoggerFactory.getLogger(QueryUtils.class);
+
   private QueryUtils() {
     // util class
   }
@@ -66,6 +70,8 @@ public class QueryUtils {
     // remove chunks that are completely deleted
     chunkMetaData.removeIf(metaData -> {
       if (metaData.getDeletedAt() >= metaData.getEndTime()) {
+        logger.info("remove metaData because of modification, startTime:{} 
endTime:{} dataType:{}",
+            metaData.getStartTime(), metaData.getEndTime(), 
metaData.getDataType());
         return true;
       } else {
         if (metaData.getDeletedAt() >= metaData.getStartTime()) {

Reply via email to