[pve-devel] applied: [PATCH qemu-server] migrate: don't accidentally take NBD code paths
Thomas Lamprecht
t.lamprecht at proxmox.com
Mon May 4 17:54:04 CEST 2020
On 4/30/20 9:35 AM, Fabian Grünbichler wrote:
> by avoiding auto-vivification of $self->{online_local_volumes} via
> iteration. most code paths don't care whether it's undef or a reference
> to an empty list, but this caused the (already) fixed bug of calling
> nbd_stop without having started an NBD server in the first place.
>
> Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> ---
> This technically makes the previous NBD stop related patches no longer
> needed - but let's keep them until we clean up the whole volume handling
> properly to avoid falling into this trap again.
>
> PVE/QemuMigrate.pm | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> index 7644922..d9b104c 100644
> --- a/PVE/QemuMigrate.pm
> +++ b/PVE/QemuMigrate.pm
> @@ -713,10 +713,14 @@ sub phase2 {
> $input .= "nbd_protocol_version: $nbd_protocol_version\n";
>
> my $number_of_online_replicated_volumes = 0;
> - foreach my $volid (@{$self->{online_local_volumes}}) {
> - next if !$self->{replicated_volumes}->{$volid};
> - $number_of_online_replicated_volumes++;
> - $input .= "replicated_volume: $volid\n";
> +
> + # prevent auto-vivification
> + if ($self->{online_local_volumes}) {
> + foreach my $volid (@{$self->{online_local_volumes}}) {
> + next if !$self->{replicated_volumes}->{$volid};
> + $number_of_online_replicated_volumes++;
> + $input .= "replicated_volume: $volid\n";
> + }
> }
>
> my $target_replicated_volumes = {};
>
applied
More information about the pve-devel
mailing list