From 712492230ae6149cbd06f7674ed0b7a4c9881e69 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 31 Jul 2025 10:00:29 +0530 Subject: [PATCH] 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);