mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-31 18:15:25 +00:00
qemu: report useful error failling to destroy domain gracefully
Resolves:https://bugzilla.redhat.com/show_bug.cgi?id=927620 #kill -STOP `pidof qemu-kvm` #virsh destroy $guest --graceful error: Failed to destroy domain testVM error: An error occurred, but the cause is unknown With --graceful, SIGTERM always is emitted to kill driver process, but it won't success till burning out waiting time in case of process being stopped. But domain destroy without --graceful can work, SIGKILL will be emitted to the stopped process after 10 secs which always kills a process even one that is currently stopped. So report an error after burning out waiting time in this case.
This commit is contained in:
parent
6aa4fc656d
commit
6459af6a43
@ -3930,7 +3930,7 @@ qemuProcessKill(virDomainObjPtr vm, unsigned int flags)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & VIR_QEMU_PROCESS_KILL_NOWAIT)) {
|
if (flags & VIR_QEMU_PROCESS_KILL_NOWAIT) {
|
||||||
virProcessKill(vm->pid,
|
virProcessKill(vm->pid,
|
||||||
(flags & VIR_QEMU_PROCESS_KILL_FORCE) ?
|
(flags & VIR_QEMU_PROCESS_KILL_FORCE) ?
|
||||||
SIGKILL : SIGTERM);
|
SIGKILL : SIGTERM);
|
||||||
|
@ -310,8 +310,9 @@ virProcessKillPainfully(pid_t pid, bool force)
|
|||||||
usleep(200 * 1000);
|
usleep(200 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
VIR_DEBUG("Timed out waiting after SIGKILL to process %lld",
|
virReportSystemError(EBUSY,
|
||||||
(long long)pid);
|
_("Failed to terminate process %lld with SIG%s"),
|
||||||
|
(long long)pid, signame);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user