From: Matan Breizman Date: Tue, 6 Aug 2024 17:17:33 +0000 (+0300) Subject: Merge pull request #58148 from xxhdx1985126/wip-65696 X-Git-Tag: testing/wip-pdonnell-testing-20240813.125846-debug~64 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=d91864f00034b68364e942e301585df1b3cbcfde;p=ceph-ci.git Merge pull request #58148 from xxhdx1985126/wip-65696 crimson/osd/osd_operations: hang requests if the objects are unfound Reviewed-by: Matan Breizman --- d91864f00034b68364e942e301585df1b3cbcfde diff --cc src/crimson/osd/recovery_backend.cc index c55d3150850,7e543617695..1148585ad25 --- a/src/crimson/osd/recovery_backend.cc +++ b/src/crimson/osd/recovery_backend.cc @@@ -43,13 -43,13 +43,13 @@@ void RecoveryBackend::clear_temp_obj(co } void RecoveryBackend::clean_up(ceph::os::Transaction& t, - std::string_view why) + interrupt_cause_t why) { - for (auto& soid : temp_contents) { + for_each_temp_obj([&](auto &soid) { t.remove(pg.get_collection_ref()->get_cid(), ghobject_t(soid, ghobject_t::NO_GEN, pg.get_pg_whoami().shard)); - } - temp_contents.clear(); + }); + clear_temp_objs(); for (auto& [soid, recovery_waiter] : recovering) { if ((recovery_waiter->pull_info diff --cc src/crimson/osd/recovery_backend.h index 179cfbabd08,3c98de606b2..b404b79751e --- a/src/crimson/osd/recovery_backend.h +++ b/src/crimson/osd/recovery_backend.h @@@ -239,17 -243,12 +242,17 @@@ protected const hobject_t& target, eversion_t version) const; - boost::container::flat_set temp_contents; - void add_temp_obj(const hobject_t &oid); void clear_temp_obj(const hobject_t &oid); + template + void for_each_temp_obj(Func &&f) { + backend->for_each_temp_obj(std::forward(f)); + } + void clear_temp_objs() { + backend->clear_temp_objs(); + } - void clean_up(ceph::os::Transaction& t, std::string_view why); + void clean_up(ceph::os::Transaction& t, interrupt_cause_t why); virtual seastar::future<> on_stop() = 0; private: void handle_backfill_finish(