[pve-devel] [PATCH ha-manager 1/1] api: relocate/migrate resource: improve initialization of variables to avoid Perl warning

Fiona Ebner f.ebner at proxmox.com
Thu Oct 2 15:39:45 CEST 2025


Am 02.10.25 um 2:18 PM schrieb Daniel Kral:
> On Wed Oct 1, 2025 at 4:02 PM CEST, Fiona Ebner wrote:
>> diff --git a/src/PVE/HA/Config.pm b/src/PVE/HA/Config.pm
>> index 301c62f..b52465f 100644
>> --- a/src/PVE/HA/Config.pm
>> +++ b/src/PVE/HA/Config.pm
>> @@ -397,6 +397,7 @@ sub get_resource_motion_info {
>>          push @$dependent_resources, $_ for sort keys %$together;
>>  
>>          for my $node (keys %$ns) {
>> +            $blocking_resources_by_node->{$node} = [];
> 
> Unfortunately this breaks some callers of get_resource_motion_info(...),
> which assume that a set $blocking_resources_by_node->{$node} means that
> there was some blocking HA resource on that node, e.g.
> 
> $ ha-manager crm-command migrate vm:10000 node2
> cannot migrate resource 'vm:10000' to node 'node2':

Are you sure this is with the first part of my patch included? It works
for me.

> even though vm:10000 isn't in any HA rule. It might also break the
> migrate precondition API in pve-container and qemu-server as it will not
> add the node to 'allowed-nodes' there, which AFAICT we don't use in our
> web interface but maybe some API users?

Ah, good catch! I did not notice that there are callers outside the
ha-manager package. Okay, I'll go with the other approach then for v2.

> 
> To be fair, these users should also check whether there are any
> elements in the array to be safe, but it might be less churn to make it
> a ref + array ref check for both API endpoints here?
> 
>>              next if $ns->{$node} ne 'online';
>>  
>>              for my $csid (sort keys %$separate) {




More information about the pve-devel mailing list