aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/model/s3/lifecycle_worker.rs21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/model/s3/lifecycle_worker.rs b/src/model/s3/lifecycle_worker.rs
index 0747ffb8..ed762413 100644
--- a/src/model/s3/lifecycle_worker.rs
+++ b/src/model/s3/lifecycle_worker.rs
@@ -249,11 +249,22 @@ async fn process_object(
let bucket = match last_bucket.take() {
Some(b) if b.id == object.bucket_id => b,
- _ => garage
- .bucket_table
- .get(&EmptyKey, &object.bucket_id)
- .await?
- .ok_or_message("object in non-existent bucket")?,
+ _ => {
+ match garage
+ .bucket_table
+ .get(&EmptyKey, &object.bucket_id)
+ .await?
+ {
+ Some(b) => b,
+ None => {
+ warn!(
+ "Lifecycle worker: object in non-existent bucket {:?}",
+ object.bucket_id
+ );
+ return Ok(Skip::SkipBucket);
+ }
+ }
+ }
};
let lifecycle_policy: &[LifecycleRule] = bucket