As reported in the community forum [0], live disk migration using migration type 'insecure' would fail when the target is an IPv6 host. When passing the IPv6 address to QMP, the surrounding square brackets need to be removed first.
[0]: https://forum.proxmox.com/threads/176727/ Fixes: 3fee3186 ("blockdev: add support for NBD paths") Signed-off-by: Fiona Ebner <[email protected]> --- src/PVE/QemuServer/Blockdev.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm index 26e9c383..af7e769b 100644 --- a/src/PVE/QemuServer/Blockdev.pm +++ b/src/PVE/QemuServer/Blockdev.pm @@ -274,8 +274,13 @@ my sub generate_file_blockdev { my $server = { type => 'unix', path => "$1" }; $blockdev = { driver => 'nbd', server => $server, export => "$2" }; } elsif ($drive->{file} =~ m/^$NBD_TCP_PATH_RE_3$/) { - my $server = { type => 'inet', host => "$1", port => "$2" }; # port is also a string in QAPI - $blockdev = { driver => 'nbd', server => $server, export => "$3" }; + my ($host, $port, $export) = ($1, $2, $3); + if ($host =~ m/^\[(.*)\]$/) { # IPv6 address needs to be passed without square brackets + $host = $1; + } + # port is also a string in QAPI + my $server = { type => 'inet', host => "$host", port => "$port" }; + $blockdev = { driver => 'nbd', server => $server, export => "$export" }; } elsif ($drive->{file} eq 'cdrom') { my $path = PVE::QemuServer::Drive::get_iso_path($storecfg, $drive->{file}); $blockdev = { driver => 'host_cdrom', filename => "$path" }; -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
