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

tanxinyu pushed a commit to branch Computing-resource-balancing_cp
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 41a1fd5aee515f870ef63d7378c7cb2226da1b1c
Author: YongzaoDan <[email protected]>
AuthorDate: Mon Jul 31 20:38:59 2023 +0800

    resolve conversations
---
 .../iotdb/confignode/manager/load/balancer/PartitionBalancer.java    | 5 ++---
 .../manager/load/balancer/partition/DataPartitionPolicyTable.java    | 2 +-
 .../procedure/impl/statemachine/CreateRegionGroupsProcedure.java     | 4 +++-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
index 78be7046de5..bbac4510137 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/PartitionBalancer.java
@@ -132,10 +132,9 @@ public class PartitionBalancer {
       }
 
       DataPartitionPolicyTable allotTable = 
dataPartitionPolicyTableMap.get(database);
-      allotTable.acquireLock();
-      DataPartitionTable dataPartitionTable = new DataPartitionTable();
-
       try {
+        allotTable.acquireLock();
+        DataPartitionTable dataPartitionTable = new DataPartitionTable();
         // Enumerate SeriesPartitionSlot
         for (Map.Entry<TSeriesPartitionSlot, TTimeSlotList> 
seriesPartitionEntry :
             unassignedPartitionSlotsMap.entrySet()) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/partition/DataPartitionPolicyTable.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/partition/DataPartitionPolicyTable.java
index 410d1edd593..29bd2a2c1ba 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/partition/DataPartitionPolicyTable.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/partition/DataPartitionPolicyTable.java
@@ -115,8 +115,8 @@ public class DataPartitionPolicyTable {
 
   /** Only use this interface when init PartitionBalancer. */
   public void setDataAllotMap(Map<TSeriesPartitionSlot, TConsensusGroupId> 
dataAllotMap) {
-    dataAllotTableLock.lock();
     try {
+      dataAllotTableLock.lock();
       int mu = SERIES_SLOT_NUM / seriesPartitionSlotCounter.size();
       dataAllotMap.forEach(
           (seriesPartitionSlot, regionGroupId) -> {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/CreateRegionGroupsProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/CreateRegionGroupsProcedure.java
index cf0af07a26c..2dab4c451aa 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/CreateRegionGroupsProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/CreateRegionGroupsProcedure.java
@@ -275,7 +275,9 @@ public class CreateRegionGroupsProcedure
             ThriftCommonsSerDeUtils.deserializeTRegionReplicaSet(byteBuffer);
         failedRegionReplicaSets.put(groupId, replica);
       }
-      persistPlan.deserializeForProcedure(byteBuffer);
+      if (byteBuffer.hasRemaining()) {
+        persistPlan.deserializeForProcedure(byteBuffer);
+      }
     } catch (Exception e) {
       LOGGER.error("Deserialize meets error in CreateRegionGroupsProcedure", 
e);
       throw new RuntimeException(e);

Reply via email to