You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2022/03/17 07:47:21 UTC

[iotdb] 23/45: fix some bugs

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

jianyun pushed a commit to branch rocksdb/dev
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit a54d080049b66372f6a926152c0d39373e216b4c
Author: chengjianyun <ch...@360.cn>
AuthorDate: Thu Mar 10 11:52:04 2022 +0800

    fix some bugs
---
 .../apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java | 15 ++++++++++++---
 .../iotdb/db/metadata/rocksdb/MetaDataTransfer.java       |  3 +++
 .../db/metadata/rocksdb/RocksDBReadWriteHandler.java      |  4 +++-
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
index 671fcbe..e2375c3 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
@@ -833,9 +833,18 @@ public class MRocksDBManager implements IMetaManager {
                     levelKey, RocksDBMNodeType.STORAGE_GROUP, DEFAULT_NODE_VALUE);
               }
             } else {
-              boolean hasChild = !keyCheckResult.getResult(RocksDBMNodeType.STORAGE_GROUP);
-              throw new StorageGroupAlreadySetException(
-                  RocksDBUtils.concatNodesName(nodes, 0, i), hasChild);
+              if (i >= len - 1) {
+                if (keyCheckResult.getExistType() == RocksDBMNodeType.STORAGE_GROUP) {
+                  throw new StorageGroupAlreadySetException(storageGroup.getFullPath());
+                } else {
+                  throw new PathAlreadyExistException(storageGroup.getFullPath());
+                }
+              } else {
+                if (keyCheckResult.getExistType() != RocksDBMNodeType.INTERNAL) {
+                  throw new StorageGroupAlreadySetException(
+                      RocksDBUtils.concatNodesName(nodes, 0, i), true);
+                }
+              }
             }
           } finally {
             lock.unlock();
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java
index c3c8906..89e59d6 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java
@@ -320,6 +320,9 @@ public class MetaDataTransfer {
         .forEach(
             sgNode -> {
               try {
+                if (sgNode.getPartialPath().getFullPath() == "root.iotcloud") {
+                  return;
+                }
                 rocksDBManager.setStorageGroup(sgNode.getPartialPath());
                 if (sgNode.getDataTTL() > 0) {
                   rocksDBManager.setTTL(sgNode.getPartialPath(), sgNode.getDataTTL());
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java
index 69d8e7e..cac86e6 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java
@@ -268,12 +268,14 @@ public class RocksDBReadWriteHandler {
     if (!rocksDB.keyMayExist(key, holder)) {
       exist = false;
     } else {
-      if (holder.getValue() != null) {
+      if (holder.getValue() == null) {
         byte[] value = rocksDB.get(key);
         if (value != null) {
           exist = true;
           holder.setValue(value);
         }
+      } else {
+        exist = true;
       }
     }
     return exist;