diff --git a/pbs-datastore/src/snapshot_reader.rs b/pbs-datastore/src/snapshot_reader.rs index 899c3bce..ec7a48e5 100644 --- a/pbs-datastore/src/snapshot_reader.rs +++ b/pbs-datastore/src/snapshot_reader.rs @@ -41,6 +41,10 @@ impl SnapshotReader { let datastore = snapshot.datastore(); let snapshot_path = snapshot.full_path(); + if !snapshot_path.exists() { + bail!("snapshot {} does not exist!", snapshot.dir()); + } + let locked_dir = lock_dir_noblock_shared(&snapshot_path, "snapshot", "locked by another operation")?; diff --git a/src/api2/reader/mod.rs b/src/api2/reader/mod.rs index e2a10da3..1ac4ac40 100644 --- a/src/api2/reader/mod.rs +++ b/src/api2/reader/mod.rs @@ -125,6 +125,10 @@ fn upgrade_to_backup_reader_protocol( } } + if !backup_dir.full_path().exists() { + bail!("snapshot {} does not exist.", backup_dir.dir()); + } + let _guard = lock_dir_noblock_shared( &backup_dir.full_path(), "snapshot",