From 931630b7a473f17f0e85148013a9b738f2b95e25 Mon Sep 17 00:00:00 2001 From: obdev Date: Tue, 16 Jul 2024 05:30:08 +0000 Subject: [PATCH] reduce S3 log for NO_SUCH_KEY error --- .../lib/restore/cos/ob_cos_wrapper_handle.cpp | 2 +- .../src/lib/restore/ob_storage_s3_base.cpp | 21 ++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/deps/oblib/src/lib/restore/cos/ob_cos_wrapper_handle.cpp b/deps/oblib/src/lib/restore/cos/ob_cos_wrapper_handle.cpp index 860b660555..570c5814b1 100644 --- a/deps/oblib/src/lib/restore/cos/ob_cos_wrapper_handle.cpp +++ b/deps/oblib/src/lib/restore/cos/ob_cos_wrapper_handle.cpp @@ -89,7 +89,7 @@ int ObCosWrapperHandle::init(const ObObjectStorageInfo *storage_info) OB_LOG(WARN, "fail to parse cos account from storage info str", K(ret)); } else if (strlen(cos_account_.delete_mode_) > 0 && OB_FAIL(set_delete_mode(cos_account_.delete_mode_))) { OB_LOG(WARN, "fail to set cos delete mode", K(cos_account_.delete_mode_), K(ret)); - } { + } else { is_inited_ = true; } return ret; diff --git a/deps/oblib/src/lib/restore/ob_storage_s3_base.cpp b/deps/oblib/src/lib/restore/ob_storage_s3_base.cpp index ae6cda7db6..ecd16e443b 100644 --- a/deps/oblib/src/lib/restore/ob_storage_s3_base.cpp +++ b/deps/oblib/src/lib/restore/ob_storage_s3_base.cpp @@ -63,10 +63,15 @@ void ObS3Logger::Log(Logging::LogLevel logLevel, const char* tag, const char* fo switch (logLevel) { case Logging::LogLevel::Fatal: case Logging::LogLevel::Error: - case Logging::LogLevel::Warn: - ret = OB_S3_ERROR; - _OB_LOG(WARN, new_format, tag, arg_buf); + case Logging::LogLevel::Warn: { + if (OB_NOT_NULL(STRSTR(arg_buf, "HTTP response code: 404"))) { + // skip NO_SUCH_KEY error + } else { + ret = OB_S3_ERROR; + _OB_LOG(WARN, new_format, tag, arg_buf); + } break; + } case Logging::LogLevel::Info: _OB_LOG(INFO, new_format, tag, arg_buf); break; @@ -655,6 +660,13 @@ template static void log_s3_status(OutcomeType &outcome, const int ob_errcode) { const char *request_id = outcome.GetResult().GetRequestId().c_str(); + if (outcome.GetResult().GetRequestId().empty()) { + const Aws::Http::HeaderValueCollection &headers = outcome.GetError().GetResponseHeaders(); + Aws::Http::HeaderValueCollection::const_iterator it = headers.find("x-amz-request-id"); + if (it != headers.end()) { + request_id = it->second.c_str(); + } + } const int code = static_cast(outcome.GetError().GetResponseCode()); const char *exception = outcome.GetError().GetExceptionName().c_str(); const char *err_msg = outcome.GetError().GetMessage().c_str(); @@ -1010,11 +1022,10 @@ int ObStorageS3Base::get_s3_file_meta_(S3ObjectMeta &meta) if (OB_FAIL(s3_client_->head_object(request, outcome))) { OB_LOG(WARN, "failed to head s3 object", K(ret)); } else if (!outcome.IsSuccess()) { - convert_io_error(outcome.GetError(), ret); + handle_s3_outcome(outcome, ret); if (OB_BACKUP_FILE_NOT_EXIST == ret) { ret = OB_SUCCESS; } else { - log_s3_status(outcome, ret); OB_LOG(WARN, "failed to head s3 object", K(ret), K_(bucket), K_(object)); } } else {