-
Notifications
You must be signed in to change notification settings - Fork 587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cloud_storage: add error_outcome::operation_not_supported
#22339
cloud_storage: add error_outcome::operation_not_supported
#22339
Conversation
Add `abs_error_code::operation_not_supported_on_directory` for future handling of errors that arise when a `Delete Blob` request is made on a directory.
Adds a value to the `cloud_storage::error_outcome` enum for handling cases where the response to a request made had some flavor of `OperationNotSupported` code. This will be used immediately to handle a case for the `abs_client` where `Delete Blob` requests made on directories results in a `OperationNotSupportedOnDirectory` response.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you happen to test this manually on an ABS cluster? Would be good to note in the commit messages / cover letter
Yes I did, and noted. |
01ac328
to
436eb45
Compare
ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/52066#0190ecac-f2ab-49c2-a912-f46ef6900d9a ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/52066#0190ecaf-6dc0-47cc-bfb7-9e9359f58f94 ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/52104#0190f00b-d231-4df8-9914-8ca1d8493b24 |
There is a ligging utility that adds rate limiting. This is a serious
configuration error that has to bubble up to the user.
…On Fri, Jul 26, 2024, 16:59 Willem Kaufmann ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In src/v/cloud_storage_clients/abs_client.cc
<#22339 (comment)>
:
> + // doesn't exist. The remote doesn't expect this, so we
+ // map 404s to a successful response.
+ vlog(
+ abs_log.debug,
+ "Object to be deleted was not found in cloud storage: "
+ "object={}, bucket={}. Ignoring ...",
+ name,
+ key);
+ return ss::make_ready_future<ret_t>(no_response{});
+ } else if (
+ result.error() == error_outcome::operation_not_supported) {
+ // ABS does not allow for deletion of directories when HNS
+ // is disabled. The "folder" is "removed" when all blobs
+ // inside of it are deleted. Map this to a successful
+ // response.
+ vlog(
In the case of a mis-match between HNS being enabled in redpanda and in
Blob Storage, I would expect to see this log pop up a lot. I think keeping
it at the debug level might be ideal.
—
Reply to this email directly, view it on GitHub
<#22339 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAWMNVMAK277Z5OXFWCZLLZOJP5TAVCNFSM6AAAAABLPPZD5KVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDEMBSGA4DIMJRGA>
.
You are receiving this because your review was requested.Message ID:
***@***.***>
|
…abs_client::delete_object()` Previously, a `Delete Blob` request made on a directory in ABS would result in an `error_outcome` due to the `OperationNotSupportedOnDirectory` response. We now ignore this outcome instead of propagating an error, and issue a warning log to `abs_log`.
436eb45
to
744f322
Compare
Updated logging severity for unsupported directory delete operation in |
/backport v24.2.x |
/backport v24.1.x |
/backport v23.3.x |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Previously, a
Delete Blob
request made on a directory in ABS would result in anerror_outcome
being returned, and propagated outwards due to theOperationNotSupportedOnDirectory
response when HNS is not enabled.This would be particularly noisy and harmful when
redpanda
is not configured for HNS in ABS, while the Azure account is, due to the use ofremote::delete_objects()
in various locations in the code.Add the
error_outcome::operation_not_supported
value, and ignore this error when encountered withinabs_client::delete_object()
. We still make sure to issue a debug log toabs_log
.Tested manually on personal ABS account.
Backports Required
Release Notes