diff --git a/crates/ecstore/src/set_disk/mod.rs b/crates/ecstore/src/set_disk/mod.rs index 269d32b7d..d6c2a0aac 100644 --- a/crates/ecstore/src/set_disk/mod.rs +++ b/crates/ecstore/src/set_disk/mod.rs @@ -10048,6 +10048,10 @@ mod tests { let set_disks = make_local_bucket_test_set_disks().await; let bucket = "free-version-decommission"; let object = "object.txt"; + set_disks + .make_bucket(bucket, &MakeBucketOptions::default()) + .await + .expect("target bucket should exist before free-version migration"); let version_id = Uuid::new_v4(); let mut free_version = FileInfo { name: object.to_string(), @@ -10060,6 +10064,14 @@ mod tests { ..Default::default() }; free_version.set_tier_free_version(); + // Decoded free versions always carry the on-disk free-version + // suffix alongside the in-memory tier marker; mirror that here so + // the record satisfies delete-marker metadata validation. + rustfs_utils::http::metadata_compat::insert_str( + &mut free_version.metadata, + rustfs_utils::http::metadata_compat::SUFFIX_FREE_VERSION, + String::new(), + ); set_disks .decommission_tier_free_version(bucket, object, &free_version, &ObjectOptions::default()) @@ -10099,6 +10111,10 @@ mod tests { let set_disks = make_local_bucket_test_set_disks_with_drive_count(4).await; let bucket = "free-version-decommission-resume"; let object = "object.txt"; + set_disks + .make_bucket(bucket, &MakeBucketOptions::default()) + .await + .expect("target bucket should exist before free-version migration"); let mut free_version = FileInfo { name: object.to_string(), volume: bucket.to_string(), @@ -10110,6 +10126,14 @@ mod tests { ..Default::default() }; free_version.set_tier_free_version(); + // Decoded free versions always carry the on-disk free-version + // suffix alongside the in-memory tier marker; mirror that here so + // the record satisfies delete-marker metadata validation. + rustfs_utils::http::metadata_compat::insert_str( + &mut free_version.metadata, + rustfs_utils::http::metadata_compat::SUFFIX_FREE_VERSION, + String::new(), + ); let opts = ObjectOptions::default(); let disks = set_disks.get_disks_internal().await;