]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: lifecycle: make agent-mode shutdown and reboot timeout
authorzhang bo <oscar.zhangbo@huawei.com>
Wed, 1 Apr 2015 09:13:08 +0000 (17:13 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 2 Apr 2015 09:08:48 +0000 (11:08 +0200)
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 <oscar.zhangbo@huawei.com>
Signed-off-by: Wang Yufei <james.wangyufei@huawei.com>
include/libvirt/libvirt-qemu.h
src/qemu/qemu_agent.c

index 0c5d650cc8dd2318fef98378aa0336515dac1fe5..2bb8ee86858a2e1f62ee0d132aa7d1f778bc9647 100644 (file)
@@ -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,
index a7b327969d3ea68c0b7075b134d7bcc846beff64..548d58065d95dfafa4b569eae92a90edb602811b 100644 (file)
@@ -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);