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;
}