From 36b14288bd4007b1789f32a6eba70c7078290420 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Wed, 9 Jun 2021 19:18:33 +0000 Subject: [PATCH] crimson/osd: should_abort_request() dumps Operation's details. Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/osd_operations/client_request.cc | 2 +- .../osd/osd_operations/client_request_common.cc | 10 ++++++---- src/crimson/osd/osd_operations/client_request_common.h | 4 +++- .../osd/osd_operations/internal_client_request.cc | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 4d7d334e03ef9..14c576a534d64 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -124,7 +124,7 @@ seastar::future<> ClientRequest::start() return seastar::stop_iteration::yes; }); }, [this, pgref](std::exception_ptr eptr) { - if (should_abort_request(std::move(eptr))) { + if (should_abort_request(*this, std::move(eptr))) { return seastar::stop_iteration::yes; } else { sequencer.maybe_reset(get_id()); diff --git a/src/crimson/osd/osd_operations/client_request_common.cc b/src/crimson/osd/osd_operations/client_request_common.cc index 37e12845b203d..90916e4235990 100644 --- a/src/crimson/osd/osd_operations/client_request_common.cc +++ b/src/crimson/osd/osd_operations/client_request_common.cc @@ -33,7 +33,9 @@ CommonClientRequest::do_recover_missing( } } -bool CommonClientRequest::should_abort_request(std::exception_ptr eptr) +bool CommonClientRequest::should_abort_request( + const Operation& op, + std::exception_ptr eptr) { if (*eptr.__cxa_exception_type() == typeid(::crimson::common::actingset_changed)) { @@ -41,10 +43,10 @@ bool CommonClientRequest::should_abort_request(std::exception_ptr eptr) std::rethrow_exception(eptr); } catch(::crimson::common::actingset_changed& e) { if (e.is_primary()) { - logger().debug("{} operation restart, acting set changed", __func__); + logger().debug("{} {} operation restart, acting set changed", __func__, op); return false; } else { - logger().debug("{} operation abort, up primary changed", __func__); + logger().debug("{} {} operation abort, up primary changed", __func__, op); return true; } } @@ -52,7 +54,7 @@ bool CommonClientRequest::should_abort_request(std::exception_ptr eptr) assert(*eptr.__cxa_exception_type() == typeid(crimson::common::system_shutdown_exception)); crimson::get_logger(ceph_subsys_osd).debug( - "{} operation skipped, system shutdown", __func__); + "{} {} operation skipped, system shutdown", __func__, op); return true; } } diff --git a/src/crimson/osd/osd_operations/client_request_common.h b/src/crimson/osd/osd_operations/client_request_common.h index d3b4c0b5218af..6a8a789668c18 100644 --- a/src/crimson/osd/osd_operations/client_request_common.h +++ b/src/crimson/osd/osd_operations/client_request_common.h @@ -3,6 +3,7 @@ #pragma once +#include "crimson/common/operation.h" #include "crimson/common/type_helpers.h" #include "crimson/osd/osd_operation.h" @@ -12,7 +13,8 @@ struct CommonClientRequest { static InterruptibleOperation::template interruptible_future<> do_recover_missing(Ref& pg, const hobject_t& soid); - static bool should_abort_request(std::exception_ptr eptr); + static bool should_abort_request( + const crimson::Operation& op, std::exception_ptr eptr); }; } // namespace crimson::osd diff --git a/src/crimson/osd/osd_operations/internal_client_request.cc b/src/crimson/osd/osd_operations/internal_client_request.cc index 6d615d828a2f6..3dd148cd24131 100644 --- a/src/crimson/osd/osd_operations/internal_client_request.cc +++ b/src/crimson/osd/osd_operations/internal_client_request.cc @@ -102,8 +102,8 @@ seastar::future<> InternalClientRequest::start() }); }); }); - }, [](std::exception_ptr eptr) { - if (should_abort_request(std::move(eptr))) { + }, [this](std::exception_ptr eptr) { + if (should_abort_request(*this, std::move(eptr))) { return seastar::stop_iteration::yes; } else { return seastar::stop_iteration::no; -- 2.39.5