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