It was already done in tunnel v1.

Avoid to avoid migration (and keep both source/targetvm locked) if nbdstop 
error occur

2023-09-28 16:20:39 ERROR: error - tunnel command '{"cmd":"nbdstop"}' failed - 
failed to handle 'nbdstop' command - VM 140 qmp command 'nbd-server-stop' 
failed - got timeout
2023-09-28 16:20:39 ERROR: migration finished with problems (duration 00:01:42)
---
 PVE/QemuMigrate.pm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index f41c61f..81880e5 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -1475,7 +1475,13 @@ sub phase3_cleanup {
            $self->log('info', "stopping NBD storage migration server on 
target.");
            # stop nbd server on remote vm - requirement for resume since 2.9
            if ($tunnel && $tunnel->{version} && $tunnel->{version} >= 2) {
-               PVE::Tunnel::write_tunnel($tunnel, 30, 'nbdstop');
+               eval {
+                   PVE::Tunnel::write_tunnel($tunnel, 30, 'nbdstop');
+               };
+               if (my $err = $@) {
+                   $self->log('err', $err);
+                   $self->{errors} = 1;
+               }
            } else {
                my $cmd = [@{$self->{rem_ssh}}, 'qm', 'nbdstop', $vmid];
 
-- 
2.39.2


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

Reply via email to