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

liyuheng pushed a commit to branch lyh/cp/15563
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 19d3e1b85d1bf63e62f998c92ad0d139fbd48a5f
Author: Li Yu Heng <[email protected]>
AuthorDate: Thu May 22 18:39:10 2025 +0800

    Remove all kinds of ProcedureException's subclass & Fix a security problem 
(#15563)
    
    (cherry picked from commit 5ad4a940ed84abca27c7e8be86cb371a49900491)
---
 .../confignode/procedure/InternalProcedure.java    |  6 +--
 .../iotdb/confignode/procedure/Procedure.java      | 62 +++++-----------------
 .../confignode/procedure/ProcedureExecutor.java    |  4 --
 .../exception/ProcedureAbortedException.java       | 30 -----------
 .../exception/ProcedureSuspendedException.java     | 39 --------------
 .../exception/ProcedureTimeoutException.java       | 26 ---------
 .../exception/ProcedureYieldException.java         | 36 -------------
 .../procedure/impl/StateMachineProcedure.java      |  8 +--
 .../procedure/impl/cq/CreateCQProcedure.java       |  4 +-
 .../procedure/impl/node/RemoveAINodeProcedure.java |  4 +-
 .../impl/pipe/AbstractOperatePipeProcedureV2.java  |  4 +-
 .../pipe/plugin/CreatePipePluginProcedure.java     |  4 +-
 .../impl/pipe/plugin/DropPipePluginProcedure.java  |  4 +-
 .../impl/region/AddRegionPeerProcedure.java        |  4 +-
 .../region/NotifyRegionMigrationProcedure.java     |  4 +-
 .../impl/region/ReconstructRegionProcedure.java    |  4 +-
 .../impl/region/RemoveRegionPeerProcedure.java     |  4 +-
 .../impl/schema/AlterLogicalViewProcedure.java     |  4 +-
 .../impl/schema/DeactivateTemplateProcedure.java   |  4 +-
 .../impl/schema/DeleteDatabaseProcedure.java       |  4 +-
 .../impl/schema/DeleteLogicalViewProcedure.java    |  4 +-
 .../impl/schema/DeleteTimeSeriesProcedure.java     |  4 +-
 .../procedure/impl/schema/SetTTLProcedure.java     |  4 +-
 .../impl/schema/SetTemplateProcedure.java          |  4 +-
 .../impl/schema/UnsetTemplateProcedure.java        |  4 +-
 .../impl/schema/table/AddTableColumnProcedure.java |  4 +-
 .../impl/schema/table/CreateTableProcedure.java    |  4 +-
 .../impl/schema/table/DeleteDevicesProcedure.java  |  4 +-
 .../schema/table/DropTableColumnProcedure.java     |  4 +-
 .../impl/schema/table/DropTableProcedure.java      |  4 +-
 .../schema/table/RenameTableColumnProcedure.java   |  4 +-
 .../impl/schema/table/RenameTableProcedure.java    |  4 +-
 .../schema/table/SetTablePropertiesProcedure.java  |  4 +-
 .../AbstractOperateSubscriptionProcedure.java      |  4 +-
 .../impl/sync/AbstractOperatePipeProcedure.java    |  4 +-
 .../AddNeverFinishSubProcedureProcedure.java       |  4 +-
 .../impl/testonly/NeverFinishProcedure.java        |  4 +-
 .../confignode/procedure/entity/IncProcedure.java  |  5 +-
 .../confignode/procedure/entity/NoopProcedure.java |  5 +-
 .../procedure/entity/SimpleLockProcedure.java      |  5 +-
 .../procedure/entity/SimpleSTMProcedure.java       |  4 +-
 .../procedure/entity/SleepProcedure.java           |  5 +-
 .../procedure/entity/StuckSTMProcedure.java        |  4 +-
 43 files changed, 51 insertions(+), 304 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/InternalProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/InternalProcedure.java
index 473234304cb..f9ff68bde7e 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/InternalProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/InternalProcedure.java
@@ -19,9 +19,6 @@
 
 package org.apache.iotdb.confignode.procedure;
 
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
-
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
@@ -38,8 +35,7 @@ public abstract class InternalProcedure<Env> extends 
Procedure<Env> {
   protected abstract void periodicExecute(final Env env);
 
   @Override
-  protected Procedure<Env>[] execute(Env env)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+  protected Procedure<Env>[] execute(Env env) throws InterruptedException {
     throw new UnsupportedOperationException();
   }
 
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/Procedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/Procedure.java
index d4f97c1c31b..91af03d3971 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/Procedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/Procedure.java
@@ -20,11 +20,7 @@
 package org.apache.iotdb.confignode.procedure;
 
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureAbortedException;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureTimeoutException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.state.ProcedureLockState;
 import org.apache.iotdb.confignode.procedure.state.ProcedureState;
 import org.apache.iotdb.confignode.procedure.store.IProcedureStore;
@@ -34,7 +30,6 @@ import org.slf4j.LoggerFactory;
 
 import java.io.DataOutputStream;
 import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
@@ -83,14 +78,9 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
    * @param env the environment passed to the ProcedureExecutor
    * @return a set of sub-procedures to run or ourselves if there is more work 
to do or null if the
    *     procedure is done.
-   * @throws ProcedureYieldException the procedure will be added back to the 
queue and retried
-   *     later.
    * @throws InterruptedException the procedure will be added back to the 
queue and retried later.
-   * @throws ProcedureSuspendedException Signal to the executor that Procedure 
has suspended itself
-   *     and has set itself up waiting for an external event to wake it back 
up again.
    */
-  protected abstract Procedure<Env>[] execute(Env env)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException;
+  protected abstract Procedure<Env>[] execute(Env env) throws 
InterruptedException;
 
   /**
    * The code to undo what was done by the execute() code. It is called when 
the procedure or one of
@@ -130,11 +120,14 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
 
     // exceptions
     if (hasException()) {
+      // symbol of exception
       stream.write((byte) 1);
+      // exception's name
       String exceptionClassName = exception.getClass().getName();
       byte[] exceptionClassNameBytes = 
exceptionClassName.getBytes(StandardCharsets.UTF_8);
       stream.writeInt(exceptionClassNameBytes.length);
       stream.write(exceptionClassNameBytes);
+      // exception's message
       String message = this.exception.getMessage();
       if (message != null) {
         byte[] messageBytes = message.getBytes(StandardCharsets.UTF_8);
@@ -144,6 +137,7 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
         stream.writeInt(-1);
       }
     } else {
+      // symbol of no exception
       stream.write((byte) 0);
     }
 
@@ -181,9 +175,10 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
       }
       this.setStackIndexes(indexList);
     }
-    // exceptions
+
+    // exception
     if (byteBuffer.get() == 1) {
-      Class<?> exceptionClass = deserializeTypeInfo(byteBuffer);
+      deserializeTypeInfoForCompatibility(byteBuffer);
       int messageBytesLength = byteBuffer.getInt();
       String errMsg = null;
       if (messageBytesLength > 0) {
@@ -191,19 +186,7 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
         byteBuffer.get(messageBytes);
         errMsg = new String(messageBytes, StandardCharsets.UTF_8);
       }
-      ProcedureException exception;
-      try {
-        exception =
-            (ProcedureException) 
exceptionClass.getConstructor(String.class).newInstance(errMsg);
-      } catch (InstantiationException
-          | IllegalAccessException
-          | InvocationTargetException
-          | NoSuchMethodException e) {
-        LOG.warn("Instantiation exception class failed", e);
-        exception = new ProcedureException(errMsg);
-      }
-
-      setFailure(exception);
+      setFailure(new ProcedureException(errMsg));
     }
 
     // result
@@ -224,18 +207,11 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
    * @param byteBuffer bytebuffer
    * @return Procedure
    */
-  public static Class<?> deserializeTypeInfo(ByteBuffer byteBuffer) {
+  @Deprecated
+  public static void deserializeTypeInfoForCompatibility(ByteBuffer 
byteBuffer) {
     int classNameBytesLen = byteBuffer.getInt();
     byte[] classNameBytes = new byte[classNameBytesLen];
     byteBuffer.get(classNameBytes);
-    String className = new String(classNameBytes, StandardCharsets.UTF_8);
-    Class<?> clazz;
-    try {
-      clazz = Class.forName(className);
-    } catch (ClassNotFoundException e) {
-      throw new RuntimeException("Invalid procedure class", e);
-    }
-    return clazz;
   }
 
   /**
@@ -284,8 +260,7 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
    * @param env execute environment
    * @return sub procedures
    */
-  protected Procedure<Env>[] doExecute(Env env)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+  protected Procedure<Env>[] doExecute(Env env) throws InterruptedException {
     try {
       updateTimestamp();
       return execute(env);
@@ -676,20 +651,9 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
     }
   }
 
-  protected void setAbortFailure(final String source, final String msg) {
-    setFailure(source, new ProcedureAbortedException(msg));
-  }
-
   /**
    * Called by the ProcedureExecutor when the timeout set by setTimeout() is 
expired.
    *
-   * <p>Another usage for this method is to implement retrying. A procedure 
can set the state to
-   * {@code WAITING_TIMEOUT} by calling {@code setState} method, and throw a 
{@link
-   * ProcedureSuspendedException} to halt the execution of the procedure, and 
do not forget a call
-   * {@link #setTimeout(long)} method to set the timeout. And you should also 
override this method
-   * to wake up the procedure, and also return false to tell the 
ProcedureExecutor that the timeout
-   * event has been handled.
-   *
    * @return true to let the framework handle the timeout as abort, false in 
case the procedure
    *     handled the timeout itself.
    */
@@ -698,7 +662,7 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
       long timeDiff = System.currentTimeMillis() - lastUpdate;
       setFailure(
           "ProcedureExecutor",
-          new ProcedureTimeoutException("Operation timed out after " + 
timeDiff + " ms."));
+          new ProcedureException("Operation timed out after " + timeDiff + " 
ms."));
       return true;
     }
     return false;
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/ProcedureExecutor.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/ProcedureExecutor.java
index 4f2ffdec2cc..781dcdd030e 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/ProcedureExecutor.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/ProcedureExecutor.java
@@ -23,7 +23,6 @@ import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.scheduler.ProcedureScheduler;
 import 
org.apache.iotdb.confignode.procedure.scheduler.SimpleProcedureScheduler;
 import org.apache.iotdb.confignode.procedure.state.ProcedureLockState;
@@ -417,9 +416,6 @@ public class ProcedureExecutor<Env> {
         if (subprocs != null && subprocs.length == 0) {
           subprocs = null;
         }
-      } catch (ProcedureYieldException e) {
-        LOG.debug("Yield {}", proc);
-        yieldProcedure(proc);
       } catch (InterruptedException e) {
         LOG.warn("Interrupt during execution, suspend or retry it later.", e);
         yieldProcedure(proc);
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureAbortedException.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureAbortedException.java
deleted file mode 100644
index 31d10e26347..00000000000
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureAbortedException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.confignode.procedure.exception;
-
-public class ProcedureAbortedException extends ProcedureException {
-  public ProcedureAbortedException() {
-    super();
-  }
-
-  public ProcedureAbortedException(String msg) {
-    super(msg);
-  }
-}
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureSuspendedException.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureSuspendedException.java
deleted file mode 100644
index 1b6f049bd48..00000000000
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureSuspendedException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.confignode.procedure.exception;
-
-public class ProcedureSuspendedException extends ProcedureException {
-
-  private static final long serialVersionUID = -8328419627678496269L;
-
-  /** default constructor */
-  public ProcedureSuspendedException() {
-    super();
-  }
-
-  /**
-   * Constructor
-   *
-   * @param s message
-   */
-  public ProcedureSuspendedException(String s) {
-    super(s);
-  }
-}
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureTimeoutException.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureTimeoutException.java
deleted file mode 100644
index ccc1e4b2d8e..00000000000
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureTimeoutException.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.confignode.procedure.exception;
-
-public class ProcedureTimeoutException extends ProcedureException {
-  public ProcedureTimeoutException(String s) {
-    super(s);
-  }
-}
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureYieldException.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureYieldException.java
deleted file mode 100644
index 59addee34f0..00000000000
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/exception/ProcedureYieldException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.confignode.procedure.exception;
-
-public class ProcedureYieldException extends ProcedureException {
-  /** Default constructor. */
-  public ProcedureYieldException() {
-    super();
-  }
-
-  /**
-   * Constructor.
-   *
-   * @param s message
-   */
-  public ProcedureYieldException(String s) {
-    super(s);
-  }
-}
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/StateMachineProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/StateMachineProcedure.java
index aaae9814407..c3c9167e6ef 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/StateMachineProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/StateMachineProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.impl;
 
 import org.apache.iotdb.confignode.procedure.Procedure;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 
 import org.apache.thrift.annotation.Nullable;
 import org.slf4j.Logger;
@@ -90,8 +88,7 @@ public abstract class StateMachineProcedure<Env, TState> 
extends Procedure<Env>
    * @return Flow.NO_MORE_STATE if the procedure is completed, 
Flow.HAS_MORE_STATE if there is
    *     another step.
    */
-  protected abstract Flow executeFromState(Env env, TState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException;
+  protected abstract Flow executeFromState(Env env, TState state) throws 
InterruptedException;
 
   /**
    * Called to perform the rollback of the specified state.
@@ -144,8 +141,7 @@ public abstract class StateMachineProcedure<Env, TState> 
extends Procedure<Env>
   }
 
   @Override
-  protected Procedure<Env>[] execute(final Env env)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+  protected Procedure<Env>[] execute(final Env env) throws 
InterruptedException {
     updateTimestamp();
     try {
       if (noMoreState() || isFailed()) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/cq/CreateCQProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/cq/CreateCQProcedure.java
index 579f51612ba..2b274be607c 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/cq/CreateCQProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/cq/CreateCQProcedure.java
@@ -28,8 +28,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.cq.DropCQPlan;
 import org.apache.iotdb.confignode.manager.cq.CQScheduleTask;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.node.AbstractNodeProcedure;
 import org.apache.iotdb.confignode.procedure.state.cq.CreateCQState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -84,7 +82,7 @@ public class CreateCQProcedure extends 
AbstractNodeProcedure<CreateCQState> {
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, CreateCQState 
state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
 
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveAINodeProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveAINodeProcedure.java
index 03ea4b13a27..41676414afe 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveAINodeProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveAINodeProcedure.java
@@ -26,8 +26,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.ainode.RemoveAINodePl
 import 
org.apache.iotdb.confignode.consensus.request.write.model.DropModelInNodePlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.state.RemoveAINodeState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 import org.apache.iotdb.rpc.TSStatusCode;
@@ -58,7 +56,7 @@ public class RemoveAINodeProcedure extends 
AbstractNodeProcedure<RemoveAINodeSta
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
RemoveAINodeState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (removedAINode == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
index d8b03991a4e..a9654fd3080 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
@@ -26,8 +26,6 @@ import 
org.apache.iotdb.confignode.manager.pipe.metric.overview.PipeProcedureMet
 import org.apache.iotdb.confignode.persistence.pipe.PipeTaskInfo;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.node.AbstractNodeProcedure;
 import 
org.apache.iotdb.confignode.procedure.impl.pipe.runtime.PipeMetaSyncProcedure;
 import org.apache.iotdb.confignode.procedure.state.ProcedureLockState;
@@ -223,7 +221,7 @@ public abstract class AbstractOperatePipeProcedureV2
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
OperatePipeTaskState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (pipeTaskInfo == null) {
       LOGGER.warn(
           "ProcedureId {}: Pipe lock is not acquired, executeFromState's 
execution will be skipped.",
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedure.java
index 3b20fee4d2b..e3a4719a719 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/CreatePipePluginProcedure.java
@@ -28,8 +28,6 @@ import org.apache.iotdb.confignode.manager.ConfigManager;
 import 
org.apache.iotdb.confignode.manager.pipe.coordinator.plugin.PipePluginCoordinator;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.node.AbstractNodeProcedure;
 import org.apache.iotdb.confignode.procedure.impl.node.AddConfigNodeProcedure;
 import 
org.apache.iotdb.confignode.procedure.impl.node.RemoveConfigNodeProcedure;
@@ -85,7 +83,7 @@ public class CreatePipePluginProcedure extends 
AbstractNodeProcedure<CreatePipeP
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
CreatePipePluginState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (pipePluginMeta == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/DropPipePluginProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/DropPipePluginProcedure.java
index ca949576cc1..665a3782a91 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/DropPipePluginProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/plugin/DropPipePluginProcedure.java
@@ -27,8 +27,6 @@ import 
org.apache.iotdb.confignode.persistence.pipe.PipeTaskInfo;
 import org.apache.iotdb.confignode.persistence.subscription.SubscriptionInfo;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.node.AbstractNodeProcedure;
 import org.apache.iotdb.confignode.procedure.impl.node.AddConfigNodeProcedure;
 import 
org.apache.iotdb.confignode.procedure.impl.node.RemoveConfigNodeProcedure;
@@ -82,7 +80,7 @@ public class DropPipePluginProcedure extends 
AbstractNodeProcedure<DropPipePlugi
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
DropPipePluginState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (pluginName == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java
index 3da3e0e8abb..307fcc8f99a 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/AddRegionPeerProcedure.java
@@ -29,8 +29,6 @@ import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.env.RegionMaintainHandler;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.state.AddRegionPeerState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 import org.apache.iotdb.db.utils.DateTimeUtils;
@@ -75,7 +73,7 @@ public class AddRegionPeerProcedure extends 
RegionOperationProcedure<AddRegionPe
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
AddRegionPeerState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (regionId == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/NotifyRegionMigrationProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/NotifyRegionMigrationProcedure.java
index 0160e9116f9..96432852437 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/NotifyRegionMigrationProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/NotifyRegionMigrationProcedure.java
@@ -24,8 +24,6 @@ import 
org.apache.iotdb.commons.exception.runtime.ThriftSerDeException;
 import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.state.NotifyRegionMigrationState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 
@@ -56,7 +54,7 @@ public class NotifyRegionMigrationProcedure
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
NotifyRegionMigrationState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (regionId == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java
index 003e0c407b1..230a40098e3 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/ReconstructRegionProcedure.java
@@ -26,8 +26,6 @@ import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
 import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.state.ReconstructRegionState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 import org.apache.iotdb.db.utils.DateTimeUtils;
@@ -57,7 +55,7 @@ public class ReconstructRegionProcedure extends 
RegionOperationProcedure<Reconst
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
ReconstructRegionState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     try {
       switch (state) {
         case RECONSTRUCT_REGION_PREPARE:
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java
index 64905361250..f362a7a1008 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RemoveRegionPeerProcedure.java
@@ -30,8 +30,6 @@ import org.apache.iotdb.commons.utils.ThriftCommonsSerDeUtils;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.env.RegionMaintainHandler;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.state.RemoveRegionPeerState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 import org.apache.iotdb.db.utils.DateTimeUtils;
@@ -82,7 +80,7 @@ public class RemoveRegionPeerProcedure extends 
RegionOperationProcedure<RemoveRe
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
RemoveRegionPeerState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (regionId == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterLogicalViewProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterLogicalViewProcedure.java
index e81df1e558a..a0537f14175 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterLogicalViewProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterLogicalViewProcedure.java
@@ -35,8 +35,6 @@ import 
org.apache.iotdb.confignode.client.async.CnToDnInternalServiceAsyncReques
 import 
org.apache.iotdb.confignode.client.async.handlers.DataNodeAsyncRequestContext;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.AlterLogicalViewState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -91,7 +89,7 @@ public class AlterLogicalViewProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final AlterLogicalViewState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeactivateTemplateProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeactivateTemplateProcedure.java
index cffa43f3f73..1df9da1509d 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeactivateTemplateProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeactivateTemplateProcedure.java
@@ -35,8 +35,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeDeac
 import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeEnrichedPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.DeactivateTemplateState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -97,7 +95,7 @@ public class DeactivateTemplateProcedure
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
DeactivateTemplateState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteDatabaseProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteDatabaseProcedure.java
index 652ccc75a24..6d14b8be050 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteDatabaseProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteDatabaseProcedure.java
@@ -36,8 +36,6 @@ import 
org.apache.iotdb.confignode.manager.partition.PartitionMetrics;
 import 
org.apache.iotdb.confignode.persistence.partition.maintainer.RegionDeleteTask;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.DeleteStorageGroupState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -86,7 +84,7 @@ public class DeleteDatabaseProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final DeleteStorageGroupState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (deleteDatabaseSchema == null) {
       return Flow.NO_MORE_STATE;
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteLogicalViewProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteLogicalViewProcedure.java
index 6b67da9aab9..6b448e32579 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteLogicalViewProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteLogicalViewProcedure.java
@@ -33,8 +33,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeDele
 import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeEnrichedPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.DeleteLogicalViewState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -92,7 +90,7 @@ public class DeleteLogicalViewProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final DeleteLogicalViewState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteTimeSeriesProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteTimeSeriesProcedure.java
index b92a675c60e..b49834abaa2 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteTimeSeriesProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteTimeSeriesProcedure.java
@@ -33,8 +33,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeDele
 import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeEnrichedPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.DeleteTimeSeriesState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -97,7 +95,7 @@ public class DeleteTimeSeriesProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final DeleteTimeSeriesState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTTLProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTTLProcedure.java
index de81a0681a1..9b43af2003b 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTTLProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTTLProcedure.java
@@ -32,8 +32,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.database.SetTTLPlan;
 import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeEnrichedPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.SetTTLState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -67,7 +65,7 @@ public class SetTTLProcedure extends 
StateMachineProcedure<ConfigNodeProcedureEn
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, SetTTLState 
state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTemplateProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTemplateProcedure.java
index 9180904cade..46c09e9f36f 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTemplateProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/SetTemplateProcedure.java
@@ -39,8 +39,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.template.PreSetSchema
 import 
org.apache.iotdb.confignode.consensus.response.template.TemplateInfoResp;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.SetTemplateState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -100,7 +98,7 @@ public class SetTemplateProcedure
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
SetTemplateState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/UnsetTemplateProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/UnsetTemplateProcedure.java
index 5883db04dc1..fd8eb399406 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/UnsetTemplateProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/UnsetTemplateProcedure.java
@@ -31,8 +31,6 @@ import 
org.apache.iotdb.confignode.client.async.CnToDnInternalServiceAsyncReques
 import 
org.apache.iotdb.confignode.client.async.handlers.DataNodeAsyncRequestContext;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.UnsetTemplateState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -86,7 +84,7 @@ public class UnsetTemplateProcedure
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
UnsetTemplateState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/AddTableColumnProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/AddTableColumnProcedure.java
index d75cf6e18e6..bdb5331e01e 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/AddTableColumnProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/AddTableColumnProcedure.java
@@ -29,8 +29,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.AddTableColumnP
 import 
org.apache.iotdb.confignode.consensus.request.write.table.view.AddTableViewColumnPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.table.view.AddViewColumnProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.AddTableColumnState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -68,7 +66,7 @@ public class AddTableColumnProcedure
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
AddTableColumnState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/CreateTableProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/CreateTableProcedure.java
index 4894f5db4ca..ad47622bda2 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/CreateTableProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/CreateTableProcedure.java
@@ -30,8 +30,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.RollbackCreateT
 import org.apache.iotdb.confignode.exception.DatabaseNotExistsException;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import org.apache.iotdb.confignode.procedure.impl.schema.SchemaUtils;
 import org.apache.iotdb.confignode.procedure.state.schema.CreateTableState;
@@ -73,7 +71,7 @@ public class CreateTableProcedure
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
CreateTableState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DeleteDevicesProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DeleteDevicesProcedure.java
index 0602a9166fc..c093084e1e0 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DeleteDevicesProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DeleteDevicesProcedure.java
@@ -33,8 +33,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.pipe.payload.PipeEnri
 import org.apache.iotdb.confignode.manager.ClusterManager;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.DataNodeRegionTaskExecutor;
 import org.apache.iotdb.confignode.procedure.state.schema.DeleteDevicesState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -97,7 +95,7 @@ public class DeleteDevicesProcedure extends 
AbstractAlterOrDropTableProcedure<De
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
DeleteDevicesState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableColumnProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableColumnProcedure.java
index 9b39f421c44..02bd1679b52 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableColumnProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableColumnProcedure.java
@@ -34,8 +34,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.view.CommitDele
 import 
org.apache.iotdb.confignode.consensus.request.write.table.view.PreDeleteViewColumnPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.schema.SchemaUtils;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.table.view.DropViewColumnProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.DropTableColumnState;
@@ -85,7 +83,7 @@ public class DropTableColumnProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final DropTableColumnState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableProcedure.java
index 54bf389b96b..1d9dbef13e2 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/DropTableProcedure.java
@@ -34,8 +34,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.view.CommitDele
 import 
org.apache.iotdb.confignode.consensus.request.write.table.view.PreDeleteViewPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.schema.SchemaUtils;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.table.view.DropViewProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.DropTableState;
@@ -76,7 +74,7 @@ public class DropTableProcedure extends 
AbstractAlterOrDropTableProcedure<DropTa
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
DropTableState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableColumnProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableColumnProcedure.java
index 76be83f89be..8303a4481f7 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableColumnProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableColumnProcedure.java
@@ -27,8 +27,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.RenameTableColu
 import 
org.apache.iotdb.confignode.consensus.request.write.table.view.RenameViewColumnPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.table.view.RenameViewColumnProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.RenameTableColumnState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -70,7 +68,7 @@ public class RenameTableColumnProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final RenameTableColumnState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableProcedure.java
index bc129ad40e9..dc2dafc1af6 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/RenameTableProcedure.java
@@ -27,8 +27,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.RenameTablePlan
 import 
org.apache.iotdb.confignode.consensus.request.write.table.view.RenameViewPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.table.view.RenameViewProcedure;
 import org.apache.iotdb.confignode.procedure.state.schema.RenameTableState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -63,7 +61,7 @@ public class RenameTableProcedure extends 
AbstractAlterOrDropTableProcedure<Rena
 
   @Override
   protected Flow executeFromState(final ConfigNodeProcedureEnv env, final 
RenameTableState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/SetTablePropertiesProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/SetTablePropertiesProcedure.java
index aeed916f026..6c0673068eb 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/SetTablePropertiesProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/table/SetTablePropertiesProcedure.java
@@ -27,8 +27,6 @@ import 
org.apache.iotdb.confignode.consensus.request.write.table.SetTablePropert
 import 
org.apache.iotdb.confignode.consensus.request.write.table.view.SetViewPropertiesPlan;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import 
org.apache.iotdb.confignode.procedure.impl.schema.table.view.SetViewPropertiesProcedure;
 import 
org.apache.iotdb.confignode.procedure.state.schema.SetTablePropertiesState;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
@@ -76,7 +74,7 @@ public class SetTablePropertiesProcedure
   @Override
   protected Flow executeFromState(
       final ConfigNodeProcedureEnv env, final SetTablePropertiesState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     final long startTime = System.currentTimeMillis();
     try {
       switch (state) {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/subscription/AbstractOperateSubscriptionProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/subscription/AbstractOperateSubscriptionProcedure.java
index dcefa8d5f45..07bbe2c014c 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/subscription/AbstractOperateSubscriptionProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/subscription/AbstractOperateSubscriptionProcedure.java
@@ -24,8 +24,6 @@ import 
org.apache.iotdb.commons.subscription.meta.topic.TopicMeta;
 import org.apache.iotdb.confignode.persistence.subscription.SubscriptionInfo;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.node.AbstractNodeProcedure;
 import 
org.apache.iotdb.confignode.procedure.impl.subscription.consumer.runtime.ConsumerGroupMetaSyncProcedure;
 import 
org.apache.iotdb.confignode.procedure.impl.subscription.topic.runtime.TopicMetaSyncProcedure;
@@ -181,7 +179,7 @@ public abstract class AbstractOperateSubscriptionProcedure
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, 
OperateSubscriptionState state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (subscriptionInfo == null) {
       LOGGER.warn(
           "ProcedureId {}: Subscription lock is not acquired, 
executeFromState({})'s execution will be skipped.",
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/sync/AbstractOperatePipeProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/sync/AbstractOperatePipeProcedure.java
index 4f92525f0ad..03c3e985e2b 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/sync/AbstractOperatePipeProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/sync/AbstractOperatePipeProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.impl.sync;
 
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import 
org.apache.iotdb.confignode.procedure.impl.pipe.AbstractOperatePipeProcedureV2;
 import org.apache.iotdb.confignode.procedure.state.sync.OperatePipeState;
@@ -40,7 +38,7 @@ abstract class AbstractOperatePipeProcedure
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, OperatePipeState 
state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     return Flow.NO_MORE_STATE;
   }
 
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/AddNeverFinishSubProcedureProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/AddNeverFinishSubProcedureProcedure.java
index e615eaf7f27..1e82892af78 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/AddNeverFinishSubProcedureProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/AddNeverFinishSubProcedureProcedure.java
@@ -22,8 +22,6 @@ package org.apache.iotdb.confignode.procedure.impl.testonly;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 
@@ -42,7 +40,7 @@ public class AddNeverFinishSubProcedureProcedure
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, Integer state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     if (state == 0) {
       // the sub procedure will never finish, so the father procedure should 
never be called again
       addChildProcedure(new NeverFinishProcedure());
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java
index 7b247bc6588..18c8a69e7ac 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/testonly/NeverFinishProcedure.java
@@ -22,8 +22,6 @@ package org.apache.iotdb.confignode.procedure.impl.testonly;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.confignode.procedure.env.ConfigNodeProcedureEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 import org.apache.iotdb.confignode.procedure.store.ProcedureType;
 
@@ -42,7 +40,7 @@ public class NeverFinishProcedure extends 
StateMachineProcedure<ConfigNodeProced
 
   @Override
   protected Flow executeFromState(ConfigNodeProcedureEnv env, Integer state)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     setNextState(state + 1);
     Thread.sleep(1000);
     return Flow.HAS_MORE_STATE;
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/IncProcedure.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/IncProcedure.java
index d85e40522a0..43d2f5d4659 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/IncProcedure.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/IncProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.Procedure;
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 
 import java.io.DataOutputStream;
 import java.io.IOException;
@@ -33,8 +31,7 @@ public class IncProcedure extends Procedure<TestProcEnv> {
   public boolean throwEx = false;
 
   @Override
-  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv) throws 
InterruptedException {
     AtomicInteger acc = testProcEnv.getAcc();
     if (throwEx) {
       throw new RuntimeException("throw a EXCEPTION");
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/NoopProcedure.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/NoopProcedure.java
index 159ee6f1077..550a1919506 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/NoopProcedure.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/NoopProcedure.java
@@ -21,16 +21,13 @@ package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.Procedure;
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 
 import java.io.IOException;
 
 public class NoopProcedure extends Procedure<TestProcEnv> {
 
   @Override
-  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv) throws 
InterruptedException {
     return new Procedure[0];
   }
 
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
index 9675df1f067..ce9fea39d55 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleLockProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.Procedure;
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import 
org.apache.iotdb.confignode.procedure.scheduler.SimpleProcedureScheduler;
 import org.apache.iotdb.confignode.procedure.state.ProcedureLockState;
 
@@ -39,8 +37,7 @@ public class SimpleLockProcedure extends 
Procedure<TestProcEnv> {
   }
 
   @Override
-  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv) throws 
InterruptedException {
     testProcEnv.executeSeq.append(procName);
     return null;
   }
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
index 6464ee018a0..764d3c09729 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SimpleSTMProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 
 import java.io.IOException;
@@ -41,7 +39,7 @@ public class SimpleSTMProcedure
 
   @Override
   protected Flow executeFromState(TestProcEnv testProcEnv, TestState testState)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     AtomicInteger acc = testProcEnv.getAcc();
     try {
       switch (testState) {
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SleepProcedure.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SleepProcedure.java
index 26a9a9afe61..1dd978515b4 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SleepProcedure.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/SleepProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.Procedure;
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.util.ProcedureTestUtil;
 
 import java.io.DataOutputStream;
@@ -30,8 +28,7 @@ import java.io.IOException;
 
 public class SleepProcedure extends Procedure<TestProcEnv> {
   @Override
-  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv)
-      throws ProcedureYieldException, ProcedureSuspendedException, 
InterruptedException {
+  protected Procedure<TestProcEnv>[] execute(TestProcEnv testProcEnv) throws 
InterruptedException {
     System.out.println("Procedure is sleeping.");
     ProcedureTestUtil.sleepWithoutInterrupt(2000);
     return null;
diff --git 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckSTMProcedure.java
 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckSTMProcedure.java
index 41dd5a342ea..0b1b6aa424b 100644
--- 
a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckSTMProcedure.java
+++ 
b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/entity/StuckSTMProcedure.java
@@ -21,8 +21,6 @@ package org.apache.iotdb.confignode.procedure.entity;
 
 import org.apache.iotdb.confignode.procedure.env.TestProcEnv;
 import org.apache.iotdb.confignode.procedure.exception.ProcedureException;
-import 
org.apache.iotdb.confignode.procedure.exception.ProcedureSuspendedException;
-import org.apache.iotdb.confignode.procedure.exception.ProcedureYieldException;
 import org.apache.iotdb.confignode.procedure.impl.StateMachineProcedure;
 
 import java.io.DataOutputStream;
@@ -48,7 +46,7 @@ public class StuckSTMProcedure
 
   @Override
   protected Flow executeFromState(TestProcEnv testProcEnv, TestState testState)
-      throws ProcedureSuspendedException, ProcedureYieldException, 
InterruptedException {
+      throws InterruptedException {
     AtomicInteger acc = testProcEnv.getAcc();
     try {
       switch (testState) {

Reply via email to