mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-25 13:36:50 +00:00
fix(ecstore): harden multipart part metadata visibility (#3042)
* fix(ecstore): harden multipart part metadata visibility * fix(ecstore): address PR3042 review follow-ups
This commit is contained in:
@@ -202,6 +202,9 @@ impl SetDisks {
|
||||
|
||||
#[tracing::instrument(skip(self))]
|
||||
pub(super) async fn cleanup_multipart_path(&self, paths: &[String]) {
|
||||
if paths.is_empty() {
|
||||
return;
|
||||
}
|
||||
let disks = self.get_disks_internal().await;
|
||||
|
||||
let mut errs = Vec::with_capacity(disks.len());
|
||||
@@ -290,6 +293,27 @@ impl SetDisks {
|
||||
}
|
||||
}
|
||||
|
||||
if issue3031_diag_enabled() {
|
||||
let success_count = errs.iter().filter(|err| err.is_none()).count();
|
||||
let error_count = errs.len().saturating_sub(success_count);
|
||||
let disk_not_found_count = errs.iter().filter(|err| matches!(err, Some(DiskError::DiskNotFound))).count();
|
||||
let file_not_found_count = errs.iter().filter(|err| matches!(err, Some(DiskError::FileNotFound))).count();
|
||||
warn!(
|
||||
target: "rustfs_ecstore::set_disk",
|
||||
src_bucket = %src_bucket,
|
||||
src_object = %src_object,
|
||||
dst_bucket = %dst_bucket,
|
||||
dst_object = %dst_object,
|
||||
write_quorum = write_quorum,
|
||||
disk_count = errs.len(),
|
||||
success_count = success_count,
|
||||
error_count = error_count,
|
||||
disk_not_found_count = disk_not_found_count,
|
||||
file_not_found_count = file_not_found_count,
|
||||
"issue3031_rename_part_context"
|
||||
);
|
||||
}
|
||||
|
||||
if let Some(err) = reduce_write_quorum_errs(&errs, OBJECT_OP_IGNORED_ERRS, write_quorum) {
|
||||
warn!("rename_part errs {:?}", &errs);
|
||||
self.cleanup_multipart_path(&[dst_object.to_string(), format!("{dst_object}.meta")])
|
||||
|
||||
Reference in New Issue
Block a user