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 <[email protected]>
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;
   }
 

Reply via email to