As replication and backup can happen at the same time, the vzdump snapshot might be actively used by replication when backup tries to cleanup, resulting in a not (or only partially) removed snapshot and locked (snapshot-delete) container.
Wait up to 10 minutes for any ongoing replication. If replication doesn't finish in time, the fact that there is no attempt to remove the snapshot means that there's no risk for the container to end up in a locked state. And the beginning of the next backup will force remove the left-over snapshot, which will very likely succeed even at the storage layer, because the replication really should be done by then (subsequent replications shouldn't matter as they don't need to re-transfer the vzdump snapshot). Suggested-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- Dependency bump for guest-common needed. Changes from v2: * Use new helper. VM backups are not affected by this, because they don't use storage/config snapshots, but use pve-qemu's block layer. src/PVE/VZDump/LXC.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm index b7f7463..2d943a1 100644 --- a/src/PVE/VZDump/LXC.pm +++ b/src/PVE/VZDump/LXC.pm @@ -8,6 +8,7 @@ use File::Path; use POSIX qw(strftime); use PVE::Cluster qw(cfs_read_file); +use PVE::GuestHelpers; use PVE::INotify; use PVE::LXC::Config; use PVE::LXC; @@ -476,8 +477,14 @@ sub cleanup { } if ($task->{cleanup}->{remove_snapshot}) { - $self->loginfo("cleanup temporary 'vzdump' snapshot"); - PVE::LXC::Config->snapshot_delete($vmid, 'vzdump', 0); + my $do_delete = sub { + $self->loginfo("cleanup temporary 'vzdump' snapshot"); + PVE::LXC::Config->snapshot_delete($vmid, 'vzdump', 0); + }; + my $logfn = sub { $self->loginfo($_[0]); }; + + eval { PVE::GuestHelpers::run_with_replication_guard($vmid, 600, $logfn, $do_delete); }; + die "snapshot 'vzdump' was not (fully) removed - $@" if $@; } } -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel