You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2024/08/15 07:47:40 UTC

(iotdb) branch master updated: [region migration] Ignore old region migration procedure during procedure framework updating #13138

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

tanxinyu 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 ecd087cc238 [region migration] Ignore old region migration procedure during procedure framework updating #13138
ecd087cc238 is described below

commit ecd087cc2388f40483fa3e50b8599cca23256d91
Author: Li Yu Heng <li...@126.com>
AuthorDate: Thu Aug 15 15:47:34 2024 +0800

    [region migration] Ignore old region migration procedure during procedure framework updating #13138
---
 .../confignode/procedure/impl/region/RegionMigrateProcedure.java | 5 +++--
 .../iotdb/confignode/procedure/store/ProcedureFactory.java       | 9 ++++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java
index 62045592d5a..8efe3249f57 100644
--- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java
+++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrateProcedure.java
@@ -215,11 +215,12 @@ public class RegionMigrateProcedure
       coordinatorForAddPeer = ThriftCommonsSerDeUtils.deserializeTDataNodeLocation(byteBuffer);
       coordinatorForRemovePeer = ThriftCommonsSerDeUtils.deserializeTDataNodeLocation(byteBuffer);
     } catch (ThriftSerDeException e) {
-      LOGGER.error(
-          "Error in deserialize {} (procID {}), this procedure may belong to old version and already cannot be used.",
+      LOGGER.warn(
+          "Error in deserialize {} (procID {}). This procedure will be ignored. It may belong to old version and cannot be used now.",
           this.getClass(),
           this.getProcId(),
           e);
+      throw e;
     }
   }
 
diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java
index bd70c2517b1..b1946264182 100644
--- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java
+++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureFactory.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.confignode.procedure.store;
 
+import org.apache.iotdb.commons.exception.runtime.ThriftSerDeException;
 import org.apache.iotdb.confignode.procedure.Procedure;
 import org.apache.iotdb.confignode.procedure.impl.cq.CreateCQProcedure;
 import org.apache.iotdb.confignode.procedure.impl.node.AddConfigNodeProcedure;
@@ -277,7 +278,13 @@ public class ProcedureFactory implements IProcedureFactory {
         LOGGER.error("Unknown Procedure type: {}", typeCode);
         throw new IOException("Unknown Procedure type: " + typeCode);
     }
-    procedure.deserialize(buffer);
+    try {
+      procedure.deserialize(buffer);
+    } catch (ThriftSerDeException e) {
+      LOGGER.warn(
+          "Catch exception while deserializing procedure, this procedure will be ignored.", e);
+      procedure = null;
+    }
     return procedure;
   }