Am 10.04.25 um 14:14 schrieb Markus Frank:
> On  2025-04-10 13:18, Fiona Ebner wrote:
>> Am 10.04.25 um 12:59 schrieb Markus Frank:
>>> Currently you get a "Can't use an undefined value..." error because all
>>> get_node_mapping functions return undefined if there is no resource
>>> mapping entry for the id.
>>>
>>> Fixes: a52eb3c4e ("check local resources: extend for mapped resources")
>>> Signed-off-by: Markus Frank <m.fr...@proxmox.com>
>>> ---
>>> This patch supersedes "fix: print error message that the resource
>>> mapping entry does not exist"
>>>
>>>   PVE/QemuServer.pm | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
>>> index ccdceedc..2790942c 100644
>>> --- a/PVE/QemuServer.pm
>>> +++ b/PVE/QemuServer.pm
>>> @@ -2512,7 +2512,7 @@ sub check_local_resources {
>>>           } elsif ($type eq 'dir') {
>>>           $entry = PVE::Mapping::Dir::get_node_mapping($dir_map, $id,
>>> $node);
>>>           }
>>> -        if (!scalar($entry->@*)) {
>>> +        if (!$entry || !scalar($entry->@*)) {
>>>           push @{$missing_mappings_by_node->{$node}}, $key;
>>>           }
>>>       }
>>
>> Looking at this more closely, I think v1 is better actually. Sorry, I
>> had misunderstood the exact situation when the issue happens.
> 
> I think this patch is actually better (especially for the WebUI).
> 
> When I use die, the error is printed in an error window, but the
> migration window is still open and I can start the migration (which
> immediately stops and shows the same error again).

This is a bit orthogonal IMHO. The question is, should we even show the
migration window if the precondition API call fails? We cannot show the
correct information then and migration will also just fail (except if
there is a bug where migration would not catch the issue, but the
precondition check does, but that would need to be fixed).

> With this patch, in the migration window, the key is printed as a mapped
> resource that is not available on the selected target, which is actually
> correct (because it is not defined for any node). And I cannot start the
> migration process.

Well, the key would also be printed in the other case if you adapt the
error message to print it there :P

I do think the distinction between "not defined at all" and "missing for
a specific node" is worth having. The "not defined at all" case is a
fundamental configuration issue, while the other can be perfectly valid
(just preventing ability to migrate). You cannot start the VM either in
the "not defined at all" case, so IMHO it does warrant a nice error pop-up.

Just my opinion :)


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

Reply via email to