Skip to content

Commit 41f3436

Browse files
direct agents transfer and pending jobs timer task fixes
1 parent 8fd2803 commit 41f3436

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

engine/orchestration/src/main/java/com/cloud/agent/manager/ClusteredAgentManagerImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1411,7 +1411,8 @@ public boolean transferDirectAgentsFromMS(String fromMsUuid, long fromMsId, long
14111411
ManagementServerHostVO msHost = msHosts.get(_mshostCounter % msHosts.size());
14121412
_mshostCounter++;
14131413

1414-
if (rebalanceAgent(host.getId(), Event.StartAgentRebalance, fromMsId, msHost.getMsid())) {
1414+
_hostTransferDao.startAgentTransfering(host.getId(), fromMsId, msHost.getMsid());
1415+
if (!rebalanceAgent(host.getId(), Event.StartAgentRebalance, fromMsId, msHost.getMsid())) {
14151416
agentTransferFailedCount++;
14161417
} else {
14171418
updateLastManagementServer(host.getId(), fromMsId);
@@ -1477,6 +1478,7 @@ public void onManagementServerMaintenance() {
14771478
logger.debug("Management server maintenance enabled");
14781479
s_transferExecutor.shutdownNow();
14791480
cleanupTransferMap(_nodeId);
1481+
_agentLbHappened = false;
14801482
super.onManagementServerMaintenance();
14811483
}
14821484

plugins/maintenance/src/main/java/org/apache/cloudstack/maintenance/ManagementServerMaintenanceManagerImpl.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public class ManagementServerMaintenanceManagerImpl extends ManagerBase implemen
8484
private long maintenanceStartTime = 0;
8585
private String lbAlgorithm;
8686

87-
private Timer timer = new Timer();
87+
private Timer timer;
8888
private TimerTask pendingJobsTask;
8989

9090
protected ManagementServerMaintenanceManagerImpl() {
@@ -261,10 +261,8 @@ public void cancelMaintenance() {
261261
}
262262

263263
private void waitForPendingJobs() {
264-
if (this.pendingJobsTask != null) {
265-
this.pendingJobsTask.cancel();
266-
this.pendingJobsTask = null;
267-
}
264+
cancelWaitForPendingJobs();
265+
this.timer = new Timer();
268266
this.pendingJobsTask = new CheckPendingJobsTask(this);
269267
long pendingJobsCheckDelayInMs = 1000L; // 1 sec
270268
long pendingJobsCheckPeriodInMs = 3L * 1000; // every 3 secs, check more frequently for pending jobs
@@ -276,6 +274,10 @@ private void cancelWaitForPendingJobs() {
276274
this.pendingJobsTask.cancel();
277275
this.pendingJobsTask = null;
278276
}
277+
if (this.timer != null) {
278+
this.timer.cancel();
279+
this.timer = null;
280+
}
279281
}
280282

281283
@Override
@@ -534,13 +536,14 @@ public void run() {
534536

535537
// No more pending jobs. Good to terminate
536538
if (managementServerMaintenanceManager.isShutdownTriggered()) {
537-
logger.info("Shutting down now");
539+
logger.info("MS is Shutting Down Now");
538540
// update state to down ?
539541
System.exit(0);
540542
}
541543
if (managementServerMaintenanceManager.isPreparingForMaintenance()) {
542544
ManagementServerHostVO msHost = msHostDao.findByMsid(ManagementServerNode.getManagementServerId());
543545
if (totalAgents == 0) {
546+
logger.info("MS is in Maintenance Mode");
544547
msHostDao.updateState(msHost.getId(), State.Maintenance);
545548
managementServerMaintenanceManager.onMaintenance();
546549
this.cancel();
@@ -569,7 +572,7 @@ public void run() {
569572
return;
570573
}
571574
} else if (managementServerMaintenanceManager.isPreparingForShutdown()) {
572-
logger.info("Ready to shutdown");
575+
logger.info("MS is Ready To Shutdown");
573576
ManagementServerHostVO msHost = msHostDao.findByMsid(ManagementServerNode.getManagementServerId());
574577
msHostDao.updateState(msHost.getId(), State.ReadyToShutDown);
575578
this.cancel();

server/src/main/java/org/apache/cloudstack/agent/lb/IndirectAgentLBServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public List<String> getManagementServerList() {
9494

9595
@Override
9696
public List<String> getManagementServerList(final Long hostId, final Long dcId, final List<Long> orderedHostIdList) {
97-
return getManagementServerList(hostId, dcId, orderedHostIdList, null);
97+
return getManagementServerList(hostId, dcId, orderedHostIdList, null);
9898
}
9999

100100
@Override
@@ -342,7 +342,7 @@ public boolean migrateAgents(String fromMsUuid, long fromMsId, String lbAlgorith
342342
Long lbCheckInterval = 0L;
343343
if (lbAlgorithmChanged) {
344344
// send new MS list when there is change in lb algorithm
345-
msList = getManagementServerList(host.getId(), dcId, orderedHostIdList);
345+
msList = getManagementServerList(host.getId(), dcId, orderedHostIdList, lbAlgorithm);
346346
lbCheckInterval = getLBPreferredHostCheckInterval(host.getClusterId());
347347
}
348348

0 commit comments

Comments
 (0)