If no vfio device is present during migration, and the transferred
(main) memory did not change between loop cycles, we get a warning:

 Use of uninitialized value $last_vfio_transferred in string ne

To silence that, check if the transferred vfio value is defined before,
and always write a defined value to $last_vfio_transferred.

This was noticed by a forum user:
https://forum.proxmox.com/threads/166161/

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 PVE/QemuMigrate.pm | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index b7bf2aa3..f72a9d33 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -1321,9 +1321,12 @@ sub phase2 {
            last;
        }
 
-       if ($memstat->{transferred} ne $last_mem_transferred ||
-           $stat->{vfio}->{transferred} ne $last_vfio_transferred
-       ) {
+       if (
+           $memstat->{transferred} ne $last_mem_transferred
+           || (defined($stat->{vfio}->{transferred})
+               && $stat->{vfio}->{transferred} ne $last_vfio_transferred)
+       )
+       {
            my $trans = $memstat->{transferred} || 0;
            my $vfio_transferred = $stat->{vfio}->{transferred} || 0;
            my $rem = $memstat->{remaining} || 0;
@@ -1389,7 +1392,7 @@ sub phase2 {
        }
 
        $last_mem_transferred = $memstat->{transferred};
-       $last_vfio_transferred = $stat->{vfio}->{transferred};
+       $last_vfio_transferred = $stat->{vfio}->{transferred} // 0;
     }
 
     if ($self->{storage_migration}) {
-- 
2.39.5



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

Reply via email to