This is an automated email from the ASF dual-hosted git repository.
weizhouapache pushed a commit to branch 4.22
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.22 by this push:
new 4262c026d0a KVM HA: Fix CheckOnHostAnswer success flag when there is
no heartbeat (#13373)
4262c026d0a is described below
commit 4262c026d0a7c4e17c6350a25b2c996da9c3cc48
Author: Suresh Kumar Anaparti <[email protected]>
AuthorDate: Mon Jul 6 17:26:04 2026 +0530
KVM HA: Fix CheckOnHostAnswer success flag when there is no heartbeat
(#13373)
---
.../kvm/resource/wrapper/LibvirtCheckOnHostCommandWrapper.java | 2 +-
.../java/org/apache/cloudstack/kvm/ha/KVMHostActivityChecker.java | 1 +
.../cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java | 5 ++++-
.../java/com/cloud/hypervisor/vmware/resource/VmwareResource.java | 2 +-
.../resource/wrapper/xenbase/CitrixCheckOnHostCommandWrapper.java | 2 +-
5 files changed, 8 insertions(+), 4 deletions(-)
diff --git
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckOnHostCommandWrapper.java
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckOnHostCommandWrapper.java
index f901fd97ca7..c069416cca5 100644
---
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckOnHostCommandWrapper.java
+++
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckOnHostCommandWrapper.java
@@ -55,7 +55,7 @@ public final class LibvirtCheckOnHostCommandWrapper extends
CommandWrapper<Check
if (hasHeartBeat) {
return new CheckOnHostAnswer(command, true, "Heart is
beating");
} else {
- return new CheckOnHostAnswer(command, "Heart is not beating");
+ return new CheckOnHostAnswer(command, false, "Heart is not
beating");
}
} catch (final InterruptedException e) {
return new CheckOnHostAnswer(command, "CheckOnHostCommand: can't
get status of host: InterruptedException");
diff --git
a/plugins/hypervisors/kvm/src/main/java/org/apache/cloudstack/kvm/ha/KVMHostActivityChecker.java
b/plugins/hypervisors/kvm/src/main/java/org/apache/cloudstack/kvm/ha/KVMHostActivityChecker.java
index af7441c4fd2..96fd42d4d54 100644
---
a/plugins/hypervisors/kvm/src/main/java/org/apache/cloudstack/kvm/ha/KVMHostActivityChecker.java
+++
b/plugins/hypervisors/kvm/src/main/java/org/apache/cloudstack/kvm/ha/KVMHostActivityChecker.java
@@ -109,6 +109,7 @@ public class KVMHostActivityChecker extends AdapterBase
implements ActivityCheck
}
Status hostStatusFromNeighbour =
checkHostStatusWithNeighbourHosts(host);
+ logger.debug("{} status reported from itself: {} and neighbor: {}",
host.toString(), hostStatusFromItself, hostStatusFromNeighbour);
Status hostStatus = hostStatusFromItself;
if (hostStatusFromNeighbour == Status.Up && (hostStatusFromItself ==
Status.Disconnected || hostStatusFromItself == Status.Down)) {
hostStatus = Status.Disconnected;
diff --git
a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
index 662b09a3044..aaebd8c7aeb 100644
---
a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
+++
b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java
@@ -61,6 +61,7 @@ import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
+import com.cloud.agent.api.CheckOnHostAnswer;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@@ -3130,7 +3131,9 @@ public class LibvirtComputingResourceTest {
assertNotNull(wrapper);
final Answer answer = wrapper.execute(command,
libvirtComputingResourceMock);
- assertFalse(answer.getResult());
+ assertTrue(answer.getResult());
+ assertTrue(answer instanceof CheckOnHostAnswer);
+ assertFalse(((CheckOnHostAnswer)answer).isAlive());
verify(libvirtComputingResourceMock, times(1)).getMonitor();
}
diff --git
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 831e222200a..7b9f258920c 100644
---
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -5807,7 +5807,7 @@ public class VmwareResource extends ServerResourceBase
implements StoragePoolRes
}
protected Answer execute(CheckOnHostCommand cmd) {
- return new CheckOnHostAnswer(cmd, null, "Not Implmeneted");
+ return new CheckOnHostAnswer(cmd, null, "Not Implemented");
}
protected Answer execute(ModifySshKeysCommand cmd) {
diff --git
a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCheckOnHostCommandWrapper.java
b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCheckOnHostCommandWrapper.java
index 5535b7e84c8..9a675c33e74 100644
---
a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCheckOnHostCommandWrapper.java
+++
b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCheckOnHostCommandWrapper.java
@@ -31,6 +31,6 @@ public final class CitrixCheckOnHostCommandWrapper extends
CommandWrapper<CheckO
@Override
public Answer execute(final CheckOnHostCommand command, final
CitrixResourceBase citrixResourceBase) {
- return new CheckOnHostAnswer(command, "Not Implmeneted");
+ return new CheckOnHostAnswer(command, "Not Implemented");
}
}