applied

On Fri, Nov 10, 2017 at 09:47:43AM +0100, Dominik Csapak wrote:
> since the guest-fsfreeze-freeze command has a timeout of 1 hour,
> we want to check if the guest-agent even runs before executing that,
> or else we wait 1 hour and then continue
> 
> Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
> ---
>  PVE/QemuServer.pm        |  5 +++--
>  PVE/VZDump/QemuServer.pm | 10 ++++++++--
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 2e822f3..7104ba2 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -6079,7 +6079,8 @@ sub qemu_drive_mirror_monitor {
>               last if $skipcomplete; #do the complete later
>  
>               if ($vmiddst && $vmiddst != $vmid) {
> -                 if ($qga) {
> +                 my $agent_running = $qga && qga_check_running($vmid);
> +                 if ($agent_running) {
>                       print "freeze filesystem\n";
>                       eval { PVE::QemuServer::vm_mon_cmd($vmid, 
> "guest-fsfreeze-freeze"); };
>                   } else {
> @@ -6090,7 +6091,7 @@ sub qemu_drive_mirror_monitor {
>                   # if we clone a disk for a new target vm, we don't switch 
> the disk
>                   PVE::QemuServer::qemu_blockjobs_cancel($vmid, $jobs);
>  
> -                 if ($qga) {
> +                 if ($agent_running) {
>                       print "unfreeze filesystem\n";
>                       eval { PVE::QemuServer::vm_mon_cmd($vmid, 
> "guest-fsfreeze-thaw"); };
>                   } else {
> diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm
> index 65ca09d..a630829 100644
> --- a/PVE/VZDump/QemuServer.pm
> +++ b/PVE/VZDump/QemuServer.pm
> @@ -404,7 +404,13 @@ sub archive {
>       $qmpclient->queue_cmd($vmid, $add_fd_cb, 'getfd',
>                             fd => $outfileno, fdname => "backup");
>  
> -     if ($self->{vmlist}->{$vmid}->{agent} && $vm_is_running){
> +     my $agent_running = 0;
> +
> +     if ($self->{vmlist}->{$vmid}->{agent} && $vm_is_running) {
> +         $agent_running = PVE::QemuServer::qga_check_running($vmid);
> +     }
> +
> +     if ($agent_running){
>           eval { PVE::QemuServer::vm_mon_cmd($vmid, "guest-fsfreeze-freeze"); 
> };
>           if (my $err = $@) {
>               $self->logerr($err);
> @@ -413,7 +419,7 @@ sub archive {
>  
>       $qmpclient->queue_execute();
>  
> -     if ($self->{vmlist}->{$vmid}->{agent} && $vm_is_running ){
> +     if ($agent_running){
>           eval { PVE::QemuServer::vm_mon_cmd($vmid, "guest-fsfreeze-thaw"); };
>           if (my $err = $@) {
>               $self->logerr($err);
> -- 
> 2.11.0

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

Reply via email to