On 6/24/19 10:33 AM, Stefan Reiter wrote:
> The "guest-shutdown" guest agent call is blocking for some reason, so if
> it fails (e.g. agent not installed on guest) only the default timeout of
> 10 minutes (see QMPClient.pm, sub cmd) would apply.
> 
> With this change, if (and only if) a timeout is specified via CLI/API,
> it is used instead. In case it is not specified, behaviour stays the
> same (default 10 min timeout).
> 
> Signed-off-by: Stefan Reiter <s.rei...@proxmox.com>
> ---
> 
> BTW, I did check "system_powerdown" and "quit", both are not blocking,
> so no changes needed there.
> 
>  PVE/QemuServer.pm | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index e8e1909..ed11609 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -5646,12 +5646,13 @@ sub vm_stop {
>           PVE::GuestHelpers::exec_hookscript($conf, $vmid, 'pre-stop');
>       }
>  
> -     $timeout = 60 if !defined($timeout);
> -
>       eval {
>           if ($shutdown) {
>               if (defined($conf) && parse_guest_agent($conf)->{enabled}) {
> -                 vm_qmp_command($vmid, { execute => "guest-shutdown" }, 
> $nocheck);
> +                 vm_qmp_command($vmid, {
> +                     execute => "guest-shutdown",
> +                     arguments => { timeout => $timeout }
> +                 }, $nocheck);
>               } else {
>                   vm_qmp_command($vmid, { execute => "system_powerdown" }, 
> $nocheck);
>               }
> @@ -5662,6 +5663,8 @@ sub vm_stop {
>       my $err = $@;
>  
>       if (!$err) {
> +         $timeout = 60 if !defined($timeout);
> +
>           my $count = 0;
>           while (($count < $timeout) && check_running($vmid, $nocheck)) {
>               $count++;
> 

applied, thanks!

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to