From 4a4dd5d91351e444ddf66154303bb5d90ccc9023 Mon Sep 17 00:00:00 2001 From: Ortiga Date: Tue, 4 Aug 2026 14:00:30 -0300 Subject: [PATCH 1/2] prevent backup error when guest agent connection fails --- .../hypervisor/kvm/resource/LibvirtComputingResource.java | 4 ++-- .../wrapper/LibvirtValidateKbossVmCommandWrapper.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 4281036d9456..9aff38624fa5 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -610,7 +610,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv public static final String CGROUP_V2 = "cgroup2fs"; - public static final String AGENT_IS_NOT_CONNECTED = "QEMU guest agent is not connected"; + public static final Integer AGENT_UNRESPONSIVE_ERROR_ORDINAL = 86; /** * Virsh command to merge (blockcommit) snapshot into the base file.

@@ -7185,7 +7185,7 @@ public Map createDiskOnlyVmSnapshotForRunningVm(List Date: Thu, 6 Aug 2026 10:48:01 -0300 Subject: [PATCH 2/2] address_copilot --- .../kvm/resource/LibvirtComputingResource.java | 10 +++++++--- .../wrapper/LibvirtValidateKbossVmCommandWrapper.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 9aff38624fa5..6c94607782b7 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -125,6 +125,7 @@ import org.libvirt.DomainInfo.DomainState; import org.libvirt.DomainInterfaceStats; import org.libvirt.DomainSnapshot; +import org.libvirt.Error; import org.libvirt.LibvirtException; import org.libvirt.MemoryStatistic; import org.libvirt.Network; @@ -610,8 +611,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv public static final String CGROUP_V2 = "cgroup2fs"; - public static final Integer AGENT_UNRESPONSIVE_ERROR_ORDINAL = 86; - + public static final org.libvirt.Error.ErrorNumber AGENT_UNRESPONSIVE_ERROR = Error.ErrorNumber.VIR_ERR_AGENT_UNRESPONSIVE; /** * Virsh command to merge (blockcommit) snapshot into the base file.

* 1st parameter: VM's name;
@@ -7185,7 +7185,7 @@ public Map createDiskOnlyVmSnapshotForRunningVm(List createDiskOnlyVmSnapshotForRunningVm(List createDiskOnlyVMSnapshotOfStoppedVm(List> volumeTosAndNewPaths, String vmName) { logger.info("Creating volume deltas for stopped VM [{}].", vmName); diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtValidateKbossVmCommandWrapper.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtValidateKbossVmCommandWrapper.java index 827588a6e6bd..f27e2b9ae4bf 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtValidateKbossVmCommandWrapper.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtValidateKbossVmCommandWrapper.java @@ -92,7 +92,7 @@ private boolean waitForBoot(ValidateKbossVmCommand cmd, Domain vm) throws Libvir return true; } } catch (LibvirtException ex) { - if (!LibvirtComputingResource.AGENT_UNRESPONSIVE_ERROR_ORDINAL.equals(ex.getError().getCode().ordinal())) { + if (!LibvirtComputingResource.isGuestAgentUnresponsive(ex)) { logger.error("Got an unexpected Libvirt Exception, giving up on validating VM [{}].", vm.getName(), ex); throw ex; }