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

rong pushed a commit to branch fix-resource-manager-deadlock
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 25a33d101f6a804f8f99d176084014ace51645b5
Author: Steve Yurong Su <[email protected]>
AuthorDate: Wed Mar 27 19:57:53 2024 +0800

    Pipe: fix deadlock caused by PipeResourceManagerHolder.<clinit> and 
PipePeriodicalJobExecutor
---
 .../iotdb/db/pipe/agent/runtime/PipePeriodicalJobExecutor.java   | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipePeriodicalJobExecutor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipePeriodicalJobExecutor.java
index f97fb709f7a..725c301d702 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipePeriodicalJobExecutor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipePeriodicalJobExecutor.java
@@ -56,10 +56,9 @@ public class PipePeriodicalJobExecutor {
   private Future<?> executorFuture;
 
   // <Periodical job, Interval in rounds>
-  private static final List<Pair<WrappedRunnable, Long>> periodicalJobs =
-      new CopyOnWriteArrayList<>();
+  private final List<Pair<WrappedRunnable, Long>> periodicalJobs = new 
CopyOnWriteArrayList<>();
 
-  public synchronized void register(String id, Runnable periodicalJob, long 
intervalInSeconds) {
+  public void register(String id, Runnable periodicalJob, long 
intervalInSeconds) {
     periodicalJobs.add(
         new Pair<>(
             new WrappedRunnable() {
@@ -94,7 +93,7 @@ public class PipePeriodicalJobExecutor {
     }
   }
 
-  private synchronized void execute() {
+  private void execute() {
     ++rounds;
 
     for (final Pair<WrappedRunnable, Long> periodicalJob : periodicalJobs) {
@@ -113,7 +112,7 @@ public class PipePeriodicalJobExecutor {
   }
 
   @TestOnly
-  public synchronized void clear() {
+  public void clear() {
     periodicalJobs.clear();
     LOGGER.info("All pipe periodical jobs are cleared successfully.");
   }

Reply via email to