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/06/09 01:36:54 UTC

[incubator-iotdb] 01/01: Add a judgement before removing entry from tag inverted index

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

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

commit bc7f4223e34135455da8b587085ccf756dfc0ec5
Author: qiaojialin <64...@qq.com>
AuthorDate: Tue Jun 9 09:36:38 2020 +0800

     Add a judgement before removing entry from tag inverted index
---
 .../java/org/apache/iotdb/db/metadata/MManager.java  | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index b9c55a9..5995fc8 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -433,11 +433,21 @@ public class MManager {
         tagLogFile.readTag(config.getTagAttributeTotalSize(), node.getOffset());
     if (tagMap != null) {
       for (Entry<String, String> entry : tagMap.entrySet()) {
-        tagIndex.get(entry.getKey()).get(entry.getValue()).remove(node);
-        if (tagIndex.get(entry.getKey()).get(entry.getValue()).isEmpty()) {
-          tagIndex.get(entry.getKey()).remove(entry.getValue());
-          if (tagIndex.get(entry.getKey()).isEmpty()) {
-            tagIndex.remove(entry.getKey());
+        if (tagIndex.containsKey(entry.getKey()) && tagIndex.get(entry.getKey())
+            .containsKey(entry.getValue())) {
+          tagIndex.get(entry.getKey()).get(entry.getValue()).remove(node);
+          if (tagIndex.get(entry.getKey()).get(entry.getValue()).isEmpty()) {
+            tagIndex.get(entry.getKey()).remove(entry.getValue());
+            if (tagIndex.get(entry.getKey()).isEmpty()) {
+              tagIndex.remove(entry.getKey());
+            }
+          }
+        } else {
+          if (logger.isWarnEnabled()) {
+            logger.warn(String.format(
+                "TimeSeries %s's tag info has been removed from tag inverted index before "
+                    + "deleting it, tag key is %s, tag value is %s",
+                node.getFullPath(), entry.getKey(), entry.getValue()));
           }
         }
       }