[pbs-devel] [PATCH backup v2] fix #3336: cleanup when deleting last snapshot

Maximiliano Sandoval m.sandoval at proxmox.com
Thu Mar 6 13:48:32 CET 2025


When the last snapshot from a group is deleted we clear the entire
group, this in turn cleans the owner for the group.

Without this change, the user is unable to change the owner of the group
after the last snapshot has been deleted. This would prevent a new
backups to the same group from a different owner.

Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---

Differences from v1:
 - Use BackupGroup::destroy directly, which prevents some clones

 src/api2/admin/datastore.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs
index dbb7ae47..6853d268 100644
--- a/src/api2/admin/datastore.rs
+++ b/src/api2/admin/datastore.rs
@@ -427,6 +427,16 @@ pub async fn delete_snapshot(
 
         snapshot.destroy(false)?;
 
+        let group = BackupGroup::from(snapshot);
+        if group.list_backups().is_ok_and(|backups| backups.is_empty()) {
+            if let Err(err) = group.destroy() {
+                log::error!(
+                    "error while cleaning group {path:?} - {err}",
+                    path = group.full_group_path()
+                );
+            }
+        }
+
         Ok(Value::Null)
     })
     .await?
-- 
2.39.5





More information about the pbs-devel mailing list