Skip to content

Commit c6a682c

Browse files
committed
HA: wait 10 seconds for all modules are loaded
this fixes ``` 2025-03-04T07:58:13,306 WARN [c.c.h.HighAvailabilityManagerExtImpl] (HA-Worker-2:[ctx-3dc0c480, work-256]) (logid:431cd943) Encountered unhandled exception during HA process, reschedule work java.lang.NullPointerException: Cannot invoke "org.apache.cloudstack.framework.jobs.AsyncJob.getId()" because "job" is null ```
1 parent 1a18899 commit c6a682c

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5248,10 +5248,9 @@ public Outcome<VirtualMachine> migrateVmAwayThroughJobQueue(final String vmUuid,
52485248
workJob = newVmWorkJobAndInfo.first();
52495249
VmWorkMigrateAway workInfo = new VmWorkMigrateAway(newVmWorkJobAndInfo.second(), srcHostId);
52505250

5251-
workJob.setCmdInfo(VmWorkSerializer.serialize(workInfo));
5251+
setCmdInfoAndSubmitAsyncJob(workJob, workInfo, vmId);
52525252
}
52535253

5254-
_jobMgr.submitAsyncJob(workJob, VmWorkConstants.VM_WORK_QUEUE, vmId);
52555254

52565255
AsyncJobExecutionContext.getCurrentExecutionContext().joinJob(workJob.getId());
52575256

engine/schema/src/main/java/com/cloud/vm/VMInstanceVO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ public void setRemoved(Date removed) {
502502

503503
@Override
504504
public String toString() {
505-
return String.format("VM instance %s", ReflectionToStringBuilderUtils.reflectOnlySelectedFields(this, "id", "instanceName", "uuid", "type"));
505+
return String.format("VM instance %s", ReflectionToStringBuilderUtils.reflectOnlySelectedFields(this, "id", "instanceName", "uuid", "type", "state"));
506506
}
507507

508508
@Override

server/src/main/java/com/cloud/ha/HighAvailabilityManagerImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,6 +1027,13 @@ public WorkerThread(String name) {
10271027

10281028
@Override
10291029
public void run() {
1030+
try {
1031+
synchronized (this) {
1032+
wait(_timeToSleep);
1033+
}
1034+
} catch (final InterruptedException e) {
1035+
s_logger.info("Interrupted");
1036+
}
10301037
s_logger.info("Starting work");
10311038
while (!_stopped) {
10321039
_managedContext.runWithContext(new Runnable() {

0 commit comments

Comments
 (0)