From dd725c53e905db51f39dbaa4a0673e8d1588301b Mon Sep 17 00:00:00 2001 From: zhang bo Date: Wed, 1 Apr 2015 17:13:08 +0800 Subject: [PATCH] qemu: lifecycle: make agent-mode shutdown and reboot timeout When we shutdown/reboot a guest using agent-mode, if the guest itself blocks infinitely, libvirt would block in qemuAgentShutdown() forever. Thus, we set a timeout for shutdown/reboot, from our experience, 60 seconds would be fine. Signed-off-by: Zhang Bo Signed-off-by: Wang Yufei --- include/libvirt/libvirt-qemu.h | 1 + src/qemu/qemu_agent.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/libvirt/libvirt-qemu.h b/include/libvirt/libvirt-qemu.h index 0c5d650cc8..2bb8ee8685 100644 --- a/include/libvirt/libvirt-qemu.h +++ b/include/libvirt/libvirt-qemu.h @@ -49,6 +49,7 @@ typedef enum { VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK = -2, VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT = -1, VIR_DOMAIN_QEMU_AGENT_COMMAND_NOWAIT = 0, + VIR_DOMAIN_QEMU_AGENT_COMMAND_SHUTDOWN = 60, } virDomainQemuAgentCommandTimeoutValues; char *virDomainQemuAgentCommand(virDomainPtr domain, const char *cmd, diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index a7b327969d..548d58065d 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -1300,7 +1300,7 @@ int qemuAgentShutdown(qemuAgentPtr mon, else mon->await_event = QEMU_AGENT_EVENT_SHUTDOWN; ret = qemuAgentCommand(mon, cmd, &reply, false, - VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK); + VIR_DOMAIN_QEMU_AGENT_COMMAND_SHUTDOWN); virJSONValueFree(cmd); virJSONValueFree(reply); -- GitLab