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

tanxinyu pushed a commit to branch rc/1.3.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rc/1.3.3 by this push:
     new 61b7d581d05 [to rc/1.3.3] Make procedure scheduler ignore successful 
procedure (#13330)
61b7d581d05 is described below

commit 61b7d581d05024cc9ae153c24a166e730381a4ef
Author: Li Yu Heng <[email protected]>
AuthorDate: Thu Aug 29 10:15:29 2024 +0800

    [to rc/1.3.3] Make procedure scheduler ignore successful procedure (#13330)
    
    * we just ignore it, ok?
    
    * don't add back successful procedure
---
 .../java/org/apache/iotdb/confignode/procedure/Procedure.java     | 2 +-
 .../org/apache/iotdb/confignode/procedure/ProcedureExecutor.java  | 7 +++++--
 .../procedure/scheduler/AbstractProcedureScheduler.java           | 8 ++++++++
 3 files changed, 14 insertions(+), 3 deletions(-)

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 7566087df0a..35fc40217aa 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
@@ -237,7 +237,7 @@ public abstract class Procedure<Env> implements 
Comparable<Procedure<Env>> {
       byte[] resultArr = new byte[resultLen];
       byteBuffer.get(resultArr);
     }
-    //  has  lock
+    //  has lock
     if (byteBuffer.get() == 1) {
       this.lockedWhenLoading();
     }
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 65dfe8cc3a1..4cf768027c6 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
@@ -400,8 +400,11 @@ public class ProcedureExecutor<Env> {
    * @param proc procedure
    */
   private void executeProcedure(RootProcedureStack rootProcStack, 
Procedure<Env> proc) {
-    Preconditions.checkArgument(
-        proc.getState() == ProcedureState.RUNNABLE, "NOT RUNNABLE! " + proc);
+    if (proc.getState() != ProcedureState.RUNNABLE) {
+      LOG.error(
+          "The executing procedure should in RUNNABLE state, but it's not. 
Procedure is {}", proc);
+      return;
+    }
     boolean suspended = false;
     boolean reExecute;
 
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/scheduler/AbstractProcedureScheduler.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/scheduler/AbstractProcedureScheduler.java
index 5a91e42ae1d..b8e8c5778c4 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/scheduler/AbstractProcedureScheduler.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/scheduler/AbstractProcedureScheduler.java
@@ -78,6 +78,10 @@ public abstract class AbstractProcedureScheduler implements 
ProcedureScheduler {
 
   @Override
   public void addFront(final Procedure procedure) {
+    if (procedure.isSuccess()) {
+      LOG.warn("Don't add a successful procedure back to the scheduler, it 
will be ignored");
+      return;
+    }
     push(procedure, true, true);
   }
 
@@ -88,6 +92,10 @@ public abstract class AbstractProcedureScheduler implements 
ProcedureScheduler {
 
   @Override
   public void addBack(final Procedure procedure) {
+    if (procedure.isSuccess()) {
+      LOG.warn("Don't add a successful procedure back to the scheduler, it 
will be ignored");
+      return;
+    }
     push(procedure, false, true);
   }
 

Reply via email to