From 2d8125cec48d62cef60f7f8569a447efc93159db Mon Sep 17 00:00:00 2001 From: Willem Kaufmann Date: Thu, 30 May 2024 16:25:28 -0400 Subject: [PATCH 1/2] cloud_storage_clients: remove extra `BlobNotFound` string match (cherry picked from commit a451611e386ab7d08d85a57e6d966e53f3359774) --- src/v/cloud_storage_clients/abs_error.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/v/cloud_storage_clients/abs_error.cc b/src/v/cloud_storage_clients/abs_error.cc index 63b0c7b7711f8..1041fbbdf0865 100644 --- a/src/v/cloud_storage_clients/abs_error.cc +++ b/src/v/cloud_storage_clients/abs_error.cc @@ -32,7 +32,6 @@ std::istream& operator>>(std::istream& i, abs_error_code& code) { .match("InternalError", abs_error_code::internal_error) .match("OperationTimedOut", abs_error_code::operation_timed_out) .match("SystemInUse", abs_error_code::system_in_use) - .match("BlobNotFound", abs_error_code::blob_not_found) .match("AccountBeingCreated", abs_error_code::account_being_created) .match( "ResourceAlreadyExists", abs_error_code::resource_already_exists) From 5345c3a37877468e82b9ee6630329854053016cf Mon Sep 17 00:00:00 2001 From: Willem Kaufmann Date: Thu, 30 May 2024 16:26:22 -0400 Subject: [PATCH 2/2] cloud_storage_clients: add `BlobNotFound` check Previously, we were checking for a `PathNotFound` result in `abs_client::do_delete_path()`. However, we should also check for `BlobNotFound`, so that `error_code::key_not_found` errors don't propagate from the `abs_client` to the `remote` object. (cherry picked from commit c85024aa605eaec8d2a0e1c2255a8093694f1395) --- src/v/cloud_storage_clients/abs_client.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/v/cloud_storage_clients/abs_client.cc b/src/v/cloud_storage_clients/abs_client.cc index 429a9f786e64c..5e9ed401534d7 100644 --- a/src/v/cloud_storage_clients/abs_client.cc +++ b/src/v/cloud_storage_clients/abs_client.cc @@ -925,7 +925,9 @@ ss::future<> abs_client::do_delete_path( try { co_await do_delete_file(name, *iter, timeout); } catch (const abs_rest_error_response& abs_error) { - if (abs_error.code() == abs_error_code::path_not_found) { + if ( + abs_error.code() == abs_error_code::path_not_found + || abs_error.code() == abs_error_code::blob_not_found) { vlog( abs_log.debug, "Object to be deleted was not found in cloud storage: "