lifecycle: fix SkipBucket bug

This commit is contained in:
Alex Auvolat 2023-09-06 16:34:07 +02:00
parent 3f461d8891
commit 4b4f2000f4

View File

@ -192,11 +192,12 @@ impl Worker for LifecycleWorker {
*counter += 1; *counter += 1;
if skip == Skip::SkipBucket { if skip == Skip::SkipBucket {
let bucket_id_len = object.bucket_id.as_slice().len(); let bucket_id_len = object.bucket_id.as_slice().len();
assert_eq!(pos.get(..bucket_id_len), Some(object.bucket_id.as_slice())); assert_eq!(
*pos = std::cmp::max( next_pos.get(..bucket_id_len),
next_pos, Some(object.bucket_id.as_slice())
[&pos[..bucket_id_len], &[0xFFu8][..]].concat(),
); );
let last_bucket_pos = [&next_pos[..bucket_id_len], &[0xFFu8][..]].concat();
*pos = std::cmp::max(next_pos, last_bucket_pos);
} else { } else {
*pos = next_pos; *pos = next_pos;
} }