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

jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git


The following commit(s) were added to refs/heads/master by this push:
     new a8b2ff577 [AMORO-3141] When a master/backup switch occurs, close the 
`planExecutor` thread pool (#3142)
a8b2ff577 is described below

commit a8b2ff577e277f843c851fc083b47ae96fead225
Author: rfyu <[email protected]>
AuthorDate: Fri Aug 30 11:07:34 2024 +0800

    [AMORO-3141] When a master/backup switch occurs, close the `planExecutor` 
thread pool (#3142)
---
 .../main/java/org/apache/amoro/server/AmoroServiceContainer.java    | 6 +++++-
 .../main/java/org/apache/amoro/server/DefaultOptimizingService.java | 5 +++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
index ef76e24c6..92f0dff2b 100644
--- 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
+++ 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java
@@ -201,7 +201,11 @@ public class AmoroServiceContainer {
       terminalManager.dispose();
       terminalManager = null;
     }
-    optimizingService = null;
+    if (optimizingService != null) {
+      LOG.info("Stopping optimizing service...");
+      optimizingService.dispose();
+      optimizingService = null;
+    }
 
     if (amsServiceMetrics != null) {
       amsServiceMetrics.unregister();
diff --git 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
index 3a51b30b4..d77b7f917 100644
--- 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
+++ 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
@@ -69,7 +69,7 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.DelayQueue;
 import java.util.concurrent.Delayed;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
@@ -99,7 +99,7 @@ public class DefaultOptimizingService extends 
StatedPersistentBase
   private final OptimizerKeeper optimizerKeeper = new OptimizerKeeper();
   private final TableService tableService;
   private final RuntimeHandlerChain tableHandlerChain;
-  private final Executor planExecutor;
+  private final ExecutorService planExecutor;
 
   public DefaultOptimizingService(Configurations serviceConfig, 
DefaultTableService tableService) {
     this.optimizerTouchTimeout = 
serviceConfig.getLong(AmoroManagementConf.OPTIMIZER_HB_TIMEOUT);
@@ -385,6 +385,7 @@ public class DefaultOptimizingService extends 
StatedPersistentBase
     optimizingQueueByGroup.clear();
     optimizingQueueByToken.clear();
     authOptimizers.clear();
+    planExecutor.shutdown();
   }
 
   public boolean canDeleteResourceGroup(String name) {

Reply via email to