[pve-devel] [PATCH manager] get_included_guests: handle non-existing guests

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Oct 19 14:38:42 CEST 2020


(FYI: forgot to hit reply-all, so resending this for the list)

On 19.10.20 12:53, Fabian Ebner wrote:
> If a guest is removed without purge, the ID will remain
> in the backup configuration. Avoid using the variable $node
> when it is potentially undefined. Instead, skip non-existing
> guests and warn the user.
>
> Reported here:
> https://forum.proxmox.com/threads/purge-backup-does-not-remove-vm-from-datacenter-backup-list.77609/

a backup job referencing to an non-existent VM must fail, that's by design.
People should either use purge, if they really want to purge a VM, or else
remove it manually from the job.

It's just important that the backup of the remaining, existing, VMs is made
nonetheless, but the job is not successful, as it was asked to backup
something that does not exists - making such errors less prominent is not
ideal.

>
> Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
> ---
>  PVE/VZDump.pm                      |  5 +++++
>  test/vzdump_guest_included_test.pl | 12 +++++++++++-
>  2 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
> index 542228d6..6dbb6a44 100644
> --- a/PVE/VZDump.pm
> +++ b/PVE/VZDump.pm
> @@ -1217,6 +1217,11 @@ sub get_included_guests {
>      $vmids = check_vmids(@$vmids);
>  
>      for my $vmid (@$vmids) {
> +	if (!defined($vmlist->{ids}->{$vmid})) {
> +	    debugmsg('warn', "no guest with ID '$vmid' exists in the cluster!");
> +	    next;
> +	}
> +
>  	my $node = $vmlist->{ids}->{$vmid}->{node};
>  	next if (defined $job->{node} && $job->{node} ne $node);
>  






More information about the pve-devel mailing list