fix(replication): mark failed targets offline (#4405)

This commit is contained in:
Zhengchao An
2026-07-08 12:08:22 +08:00
committed by GitHub
parent 1acd47f15e
commit ea49d5686b
3 changed files with 119 additions and 4 deletions
+24 -1
View File
@@ -1759,7 +1759,30 @@ impl TargetClient {
.await
{
Ok(_res) => Ok(()),
Err(e) => Err(e.into()),
Err(e) => match e {
SdkError::ServiceError(service_err) => {
let err = service_err.into_err();
let meta = err.meta();
let error = match (meta.code(), meta.message()) {
(Some(code), Some(message)) => format!("remove_object failed: {code}: {message}"),
(Some(code), None) => format!("remove_object failed: {code}"),
(None, Some(message)) => format!("remove_object failed: {message}"),
(None, None) => format!("remove_object failed: {err:?}"),
};
Err(S3ClientError::with_metadata(
error,
None,
meta.code().map(ToOwned::to_owned),
meta.message().map(ToOwned::to_owned),
))
}
SdkError::DispatchFailure(dispatch_err) => Err(S3ClientError::new(format!(
"remove_object dispatch failure for bucket:{bucket} object:{object}: {dispatch_err:?}"
))),
other => Err(S3ClientError::new(format!(
"remove_object request failed for bucket:{bucket} object:{object}: {other:?}"
))),
},
}
}
}