mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35: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,
|
||||
(flags & VIR_QEMU_PROCESS_KILL_FORCE) ?
|
||||
SIGKILL : SIGTERM);
|
||||
|
@ -310,8 +310,9 @@ virProcessKillPainfully(pid_t pid, bool force)
|
||||
usleep(200 * 1000);
|
||||
}
|
||||
|
||||
VIR_DEBUG("Timed out waiting after SIGKILL to process %lld",
|
||||
(long long)pid);
|
||||
virReportSystemError(EBUSY,
|
||||
_("Failed to terminate process %lld with SIG%s"),
|
||||
(long long)pid, signame);
|
||||
|
||||
cleanup:
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user