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