[libvirt] [PATCH] qemu: lifecycle: make agent-mode shutdown and reboot timeout

Michal Privoznik mprivozn at redhat.com
Wed Apr 1 17:33:14 UTC 2015


On 01.04.2015 11:13, zhang bo wrote:
> 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 at huawei.com>
> Signed-off-by: Wang Yufei <james.wangyufei at huawei.com>
> ---
>  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 0c5d650..2bb8ee8 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 a7b3279..548d580 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);
> 

Looks good to me. ACK after freeze.

Michal




More information about the libvir-list mailing list