From: Peter Krempa Date: Mon, 25 Sep 2017 20:34:44 +0000 (+0200) Subject: qemu: hotplug: Ignore cgroup errors when hot-unplugging vcpus X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=cf30a8cabd5943992e30c45efdd5fd7b82dd53cc;p=libvirt.git qemu: hotplug: Ignore cgroup errors when hot-unplugging vcpus When the vcpu is successfully removed libvirt would remove the cgroup. In cases when removal of the cgroup fails libvirt would report an error. This does not make much sense, since the vcpu was removed and we can't really do anything with the cgroup. This patch silences the errors from cgroup removal. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1462092 --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 7592049ea9..4913e18e69 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -5322,6 +5322,7 @@ qemuDomainRemoveVcpu(virQEMUDriverPtr driver, qemuDomainVcpuPrivatePtr vcpupriv = QEMU_DOMAIN_VCPU_PRIVATE(vcpuinfo); int oldvcpus = virDomainDefGetVcpus(vm->def); unsigned int nvcpus = vcpupriv->vcpus; + virErrorPtr save_error = NULL; size_t i; if (qemuDomainRefreshVcpuInfo(driver, vm, QEMU_ASYNC_JOB_NONE, false) < 0) @@ -5346,11 +5347,12 @@ qemuDomainRemoveVcpu(virQEMUDriverPtr driver, virDomainAuditVcpu(vm, oldvcpus, oldvcpus - nvcpus, "update", true); - for (i = vcpu; i < vcpu + nvcpus; i++) { - vcpuinfo = virDomainDefGetVcpu(vm->def, i); - if (virCgroupDelThread(priv->cgroup, VIR_CGROUP_THREAD_VCPU, i) < 0) - return -1; - } + virErrorPreserveLast(&save_error); + + for (i = vcpu; i < vcpu + nvcpus; i++) + ignore_value(virCgroupDelThread(priv->cgroup, VIR_CGROUP_THREAD_VCPU, i)); + + virErrorRestore(&save_error); return 0; }