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

sureshanaparti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new 712492230ae Shutdown MS maintenance jobs when finished (#11330)
712492230ae is described below

commit 712492230ae6149cbd06f7674ed0b7a4c9881e69
Author: Suresh Kumar Anaparti <sureshkumar.anapa...@gmail.com>
AuthorDate: Thu Jul 31 10:00:29 2025 +0530

    Shutdown MS maintenance jobs when finished (#11330)
---
 agent/src/main/java/com/cloud/agent/Agent.java                        | 4 +++-
 .../maintenance/ManagementServerMaintenanceManagerImpl.java           | 3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/agent/src/main/java/com/cloud/agent/Agent.java 
b/agent/src/main/java/com/cloud/agent/Agent.java
index b7c24e5126c..a1834b6827b 100644
--- a/agent/src/main/java/com/cloud/agent/Agent.java
+++ b/agent/src/main/java/com/cloud/agent/Agent.java
@@ -968,9 +968,11 @@ public class Agent implements HandlerFactory, 
IAgentControl, AgentStatusUpdater
             if (CollectionUtils.isNotEmpty(cmd.getMsList())) {
                 processManagementServerList(cmd.getMsList(), 
cmd.getAvoidMsList(), cmd.getLbAlgorithm(), cmd.getLbCheckInterval(), false);
             }
-            Executors.newSingleThreadScheduledExecutor(new 
NamedThreadFactory("MigrateAgentConnection-Job")).schedule(() -> {
+            ScheduledExecutorService migrateAgentConnectionService = 
Executors.newSingleThreadScheduledExecutor(new 
NamedThreadFactory("MigrateAgentConnection-Job"));
+            migrateAgentConnectionService.schedule(() -> {
                 migrateAgentConnection(cmd.getAvoidMsList());
             }, 3, TimeUnit.SECONDS);
+            migrateAgentConnectionService.shutdown();
         } catch (Exception e) {
             String errMsg = "Migrate agent connection failed, due to " + 
e.getMessage();
             logger.debug(errMsg, e);
diff --git 
a/plugins/maintenance/src/main/java/org/apache/cloudstack/maintenance/ManagementServerMaintenanceManagerImpl.java
 
b/plugins/maintenance/src/main/java/org/apache/cloudstack/maintenance/ManagementServerMaintenanceManagerImpl.java
index 16cf14e1fb1..516ed40d48b 100644
--- 
a/plugins/maintenance/src/main/java/org/apache/cloudstack/maintenance/ManagementServerMaintenanceManagerImpl.java
+++ 
b/plugins/maintenance/src/main/java/org/apache/cloudstack/maintenance/ManagementServerMaintenanceManagerImpl.java
@@ -622,6 +622,7 @@ public class ManagementServerMaintenanceManagerImpl extends 
ManagerBase implemen
                         ManagementServerHostVO msHost = 
msHostDao.findByMsid(ManagementServerNode.getManagementServerId());
                         if (msHost == null) {
                             logger.warn("Unable to find the management server, 
invalid node id");
+                            
managementServerMaintenanceManager.cancelWaitForPendingJobs();
                             return;
                         }
                         msHostDao.updateState(msHost.getId(), 
State.Maintenance);
@@ -658,6 +659,7 @@ public class ManagementServerMaintenanceManagerImpl extends 
ManagerBase implemen
                     ManagementServerHostVO msHost = 
msHostDao.findByMsid(ManagementServerNode.getManagementServerId());
                     if (msHost == null) {
                         logger.warn("Unable to find the management server, 
invalid node id");
+                        
managementServerMaintenanceManager.cancelWaitForPendingJobs();
                         return;
                     }
                     if (totalAgents == 0) {
@@ -693,6 +695,7 @@ public class ManagementServerMaintenanceManagerImpl extends 
ManagerBase implemen
                     ManagementServerHostVO msHost = 
msHostDao.findByMsid(ManagementServerNode.getManagementServerId());
                     if (msHost == null) {
                         logger.warn("Unable to find the management server, 
invalid node id");
+                        
managementServerMaintenanceManager.cancelWaitForPendingJobs();
                         return;
                     }
                     msHostDao.updateState(msHost.getId(), 
State.ReadyToShutDown);

Reply via email to