fix(ecstore): fix wide-prefix listing stalls and decode downstream logging (#5198)

* fix(ecstore): handle list stall and downstream decode logs

* docs(ecstore): keep wide-directory stall context for list_dir
This commit is contained in:
houseme
2026-07-24 22:05:27 +08:00
committed by GitHub
parent d1c2c42c90
commit 20c4ea864a
2 changed files with 100 additions and 32 deletions
+29 -13
View File
@@ -1050,19 +1050,35 @@ impl SetDisks {
if has_err {
let reason = classify_disk_error(&de_err);
error!(
bucket,
object,
part_index = current_part,
part_number,
part_offset,
part_length,
bytes_written = written,
stage = GET_STAGE_DECODE,
reason = reason.as_str(),
error = ?de_err,
"Erasure decode failed during GetObject"
);
if reason == GetObjectFailureReason::DownstreamClosed {
warn!(
bucket,
object,
part_index = current_part,
part_number,
part_offset,
part_length,
bytes_written = written,
stage = GET_STAGE_DECODE,
reason = reason.as_str(),
error = ?de_err,
"GetObject downstream closed during erasure decode"
);
} else {
error!(
bucket,
object,
part_index = current_part,
part_number,
part_offset,
part_length,
bytes_written = written,
stage = GET_STAGE_DECODE,
reason = reason.as_str(),
error = ?de_err,
"Erasure decode failed during GetObject"
);
}
record_get_object_pipeline_failure(GET_STAGE_DECODE, reason);
return Err(de_err.into());
}