From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id D8D2990A5A for ; Fri, 23 Sep 2022 10:17:21 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BA3DC211CB for ; Fri, 23 Sep 2022 10:16:51 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 23 Sep 2022 10:16:51 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id EB5CB44238 for ; Fri, 23 Sep 2022 10:16:50 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Date: Fri, 23 Sep 2022 10:16:47 +0200 Message-Id: <20220923081647.20104-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.032 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH v2 guest-common] replication: avoid "expected snapshot missing" warning when irrelevant X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Sep 2022 08:17:21 -0000 Only print it when there is a snapshot that would've been removed without the safeguard. Mostly relevant when a new volume is added to an already replicated guest. Fixes replication tests in pve-manager. Fixes: c0b2948 ("replication: prepare: safeguard against removal if expected snapshot is missing") Signed-off-by: Fiona Ebner --- Changes from v1: * Only warn when other snapshot would be removed without the safeguard, not just when no other snapshot is present. src/PVE/Replication.pm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/PVE/Replication.pm b/src/PVE/Replication.pm index 8591d0e..469ca19 100644 --- a/src/PVE/Replication.pm +++ b/src/PVE/Replication.pm @@ -177,16 +177,21 @@ sub prepare { my $removal_ok = !defined($snapname) || $info->{$snapname}; $removal_ok = 0 if $last_sync == 0; # last_sync=0 if the VM was stolen, don't remove! $removal_ok = 1 if $last_sync == 1; # last_sync=1 is a special value used to remove all + + # check if it's a replication snapshot with the same $prefix but not the $last_sync one + my $potentially_stale = sub { + my ($snap) = @_; + + return 0 if defined($snapname) && $snap eq $snapname; + return 0 if defined($parent_snapname) && $snap eq $parent_snapname; + return $snap =~ m/^\Q$prefix\E/; + }; + $logfunc->("expected snapshot $snapname not present for $volid, not removing others") - if !$removal_ok && $last_sync > 1; + if !$removal_ok && $last_sync > 1 && grep { $potentially_stale->($_) } keys $info->%*; for my $snap (keys $info->%*) { - if ( # check if it's a stale replication snapshot - !(defined($snapname) && $snap eq $snapname) && - !(defined($parent_snapname) && $snap eq $parent_snapname) && - $snap =~ m/^\Q$prefix\E/ && - $removal_ok - ) { + if ($potentially_stale->($snap) && $removal_ok) { $logfunc->("delete stale replication snapshot '$snap' on $volid"); eval { PVE::Storage::volume_snapshot_delete($storecfg, $volid, $snap); -- 2.30.2