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());
}
}
-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)) {
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;
}
}
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;
}
}
#pragma once
+#include "crimson/common/operation.h"
#include "crimson/common/type_helpers.h"
#include "crimson/osd/osd_operation.h"
static InterruptibleOperation::template interruptible_future<>
do_recover_missing(Ref<PG>& 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
});
});
});
- }, [](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;