]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #58148 from xxhdx1985126/wip-65696
authorMatan Breizman <mbreizma@redhat.com>
Tue, 6 Aug 2024 17:17:33 +0000 (20:17 +0300)
committerGitHub <noreply@github.com>
Tue, 6 Aug 2024 17:17:33 +0000 (20:17 +0300)
crimson/osd/osd_operations: hang requests if the objects are unfound

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
1  2 
src/crimson/osd/pg_recovery.cc
src/crimson/osd/recovery_backend.cc
src/crimson/osd/recovery_backend.h

Simple merge
index c55d3150850330181908744dd7c04b74e4e5951c,7e543617695d4225487e399aa65a042805916845..1148585ad25f3d4d2791114ad210d6ac7e351155
@@@ -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
index 179cfbabd084b6eb9e30cea99cb93f18fdbbc434,3c98de606b215a8ca84cf46d8535d8877ff93103..b404b79751e7b1e30ff6cab2c270c6c0c05e0045
@@@ -239,17 -243,12 +242,17 @@@ protected
      const hobject_t& target,
      eversion_t version) const;
  
 -  boost::container::flat_set<hobject_t> temp_contents;
 -
    void add_temp_obj(const hobject_t &oid);
    void clear_temp_obj(const hobject_t &oid);
 +  template <typename Func>
 +  void for_each_temp_obj(Func &&f) {
 +    backend->for_each_temp_obj(std::forward<Func>(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(