Also cannot issue a guest agent command in that case.

Reported in the community forum:
https://forum.proxmox.com/threads/106618

Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
---

Best viewed with -w.

 PVE/QemuMigrate.pm | 54 ++++++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 104e62ce..891edfb2 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -158,6 +158,8 @@ sub prepare {
                $self->{forcecpu} = 
PVE::QemuServer::CPUConfig::get_cpu_from_running_vm($pid);
            }
        }
+
+       $self->{vm_was_paused} = 1 if PVE::QemuServer::vm_is_paused($vmid);
     }
 
     my $loc_res = PVE::QemuServer::check_local_resources($conf, 1);
@@ -1146,31 +1148,37 @@ sub phase3_cleanup {
            }
        }
 
-       # config moved and nbd server stopped - now we can resume vm on target
-       if ($tunnel && $tunnel->{version} && $tunnel->{version} >= 1) {
-           eval {
-               PVE::Tunnel::write_tunnel($tunnel, 30, "resume $vmid");
-           };
-           if (my $err = $@) {
-               $self->log('err', $err);
-               $self->{errors} = 1;
-           }
-       } else {
-           my $cmd = [@{$self->{rem_ssh}}, 'qm', 'resume', $vmid, 
'--skiplock', '--nocheck'];
-           my $logf = sub {
-               my $line = shift;
-               $self->log('err', $line);
-           };
-           eval { PVE::Tools::run_command($cmd, outfunc => sub {}, errfunc => 
$logf); };
-           if (my $err = $@) {
-               $self->log('err', $err);
-               $self->{errors} = 1;
+       if (!$self->{vm_was_paused}) {
+           # config moved and nbd server stopped - now we can resume vm on 
target
+           if ($tunnel && $tunnel->{version} && $tunnel->{version} >= 1) {
+               eval {
+                   PVE::Tunnel::write_tunnel($tunnel, 30, "resume $vmid");
+               };
+               if (my $err = $@) {
+                   $self->log('err', $err);
+                   $self->{errors} = 1;
+               }
+           } else {
+               my $cmd = [@{$self->{rem_ssh}}, 'qm', 'resume', $vmid, 
'--skiplock', '--nocheck'];
+               my $logf = sub {
+                   my $line = shift;
+                   $self->log('err', $line);
+               };
+               eval { PVE::Tools::run_command($cmd, outfunc => sub {}, errfunc 
=> $logf); };
+               if (my $err = $@) {
+                   $self->log('err', $err);
+                   $self->{errors} = 1;
+               }
            }
-       }
 
-       if ($self->{storage_migration} && 
PVE::QemuServer::parse_guest_agent($conf)->{fstrim_cloned_disks} && 
$self->{running}) {
-           my $cmd = [@{$self->{rem_ssh}}, 'qm', 'guest', 'cmd', $vmid, 
'fstrim'];
-           eval{ PVE::Tools::run_command($cmd, outfunc => sub {}, errfunc => 
sub {}) };
+           if (
+               $self->{storage_migration}
+               && 
PVE::QemuServer::parse_guest_agent($conf)->{fstrim_cloned_disks}
+               && $self->{running}
+           ) {
+               my $cmd = [@{$self->{rem_ssh}}, 'qm', 'guest', 'cmd', $vmid, 
'fstrim'];
+               eval{ PVE::Tools::run_command($cmd, outfunc => sub {}, errfunc 
=> sub {}) };
+           }
        }
     }
 
-- 
2.30.2



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

Reply via email to