[pbs-devel] [PATCH 0/7] More flocking and race elimination

Stefan Reiter s.reiter at proxmox.com
Tue Aug 4 12:41:58 CEST 2020


The previous series[0] already fixed some bugs, but it also introduced some new
ones, e.g. incomplete but not running backups were unable to be removed.

This is the next step to race-free™ backups, this time going all-in on flocks.

Patches 1 and 2 are technically unrelated (though necessary), so could be
committed standalone.

The last patch introduces locking for base backups, but also re-writes the
previous (unnecessarily complex) base-snapshot existance check, which is
therefor reverted in patch 6.

[0] https://lists.proxmox.com/pipermail/pbs-devel/2020-July/000233.html


proxmox-backup: Stefan Reiter (7):
  finish_backup: mark backup as finished only after checks have passed
  backup: only allow finished backups as base snapshot
  datastore: prevent in-use deletion with locks instead of heuristic
  prune: also check backup snapshot locks
  backup: flock snapshot on backup start
  Revert "backup: ensure base snapshots are still available after
    backup"
  backup: lock base snapshot and ensure existance on finish

 src/api2/admin/datastore.rs     |  2 +-
 src/api2/backup.rs              | 16 +++++---
 src/api2/backup/environment.rs  | 21 +++--------
 src/backup/backup_info.rs       | 65 +++++++++++++++++++++++++++++----
 src/backup/datastore.rs         | 62 +++++++++++--------------------
 src/backup/prune.rs             | 48 +++++++++++++++++-------
 src/bin/proxmox-backup-proxy.rs |  2 +-
 src/client/pull.rs              |  2 +-
 tests/prune.rs                  |  6 ++-
 9 files changed, 136 insertions(+), 88 deletions(-)

-- 
2.20.1





More information about the pbs-devel mailing list