diff --git a/crates/heal/src/heal/task.rs b/crates/heal/src/heal/task.rs index dd373dbbd..7984ec3df 100644 --- a/crates/heal/src/heal/task.rs +++ b/crates/heal/src/heal/task.rs @@ -609,6 +609,9 @@ impl HealTask { expected: HealObjectIdentity, receipt: Option, ) -> bool { + if self.options.dry_run { + return false; + } let Some(receipt) = receipt else { return false; }; diff --git a/crates/heal/src/heal/task/tests.rs b/crates/heal/src/heal/task/tests.rs index 682b08236..f2a6ec36a 100644 --- a/crates/heal/src/heal/task/tests.rs +++ b/crates/heal/src/heal/task/tests.rs @@ -386,6 +386,18 @@ mod canonical_outcome { .lock() .expect("existence fixture") .insert("object".to_string(), MockObjectExists::TransientSkip("retry later")); + } else { + let incarnation = Uuid::new_v4(); + *storage.bucket_incarnation_id.lock().expect("bucket incarnation") = Some(incarnation); + storage.heal_object_receipts.lock().expect("receipt fixture").insert( + "object".to_string(), + VecDeque::from([object_receipt( + "object", + None, + HealObjectDisposition::VerifiedHealthy, + incarnation, + )]), + ); } let mut request = HealRequest::object("bucket-a".to_string(), "object".to_string(), None); request.options.dry_run = !transient;