]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: make load_obc_for_recovery pop up all errors 38006/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Tue, 10 Nov 2020 10:33:01 +0000 (18:33 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Tue, 10 Nov 2020 10:33:01 +0000 (18:33 +0800)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/osd/replicated_recovery_backend.cc

index bdf0701ccffa39c91744401a26f67ec32ac0c7cd..d742365b60bad3a183bd4576ee570e9c584b51dc 100644 (file)
@@ -77,8 +77,7 @@ seastar::future<> ReplicatedRecoveryBackend::recover_object(
       if (recovery.obc)
        recovery.obc->drop_recovery_read();
       recovering.erase(soid);
-      return seastar::make_exception_future<>(
-         std::runtime_error(fmt::format("Errors during pushing for {}", soid)));
+      return seastar::make_exception_future<>(e);
     });
   });
 }
@@ -135,15 +134,8 @@ seastar::future<> ReplicatedRecoveryBackend::load_obc_for_recovery(
     return recovery_waiter.obc->wait_recovery_read();
   }, crimson::osd::PG::load_obc_ertr::all_same_way(
       [this, &recovery_waiter, soid](const std::error_code& e) {
-      auto [obc, existed] =
-         shard_services.obc_registry.get_cached_obc(soid);
-      logger().debug("load_obc_for_recovery: load failure of obc: {}",
-         obc->obs.oi.soid);
-      recovery_waiter.obc = obc;
-      // obc is loaded with excl lock
-      recovery_waiter.obc->put_lock_type(RWState::RWEXCL);
-      ceph_assert_always(recovery_waiter.obc->get_recovery_read());
-      return seastar::make_ready_future<>();
+      logger().error("load_obc_for_recovery: load failure of obc: {}", soid);
+      return seastar::make_exception_future<>(e);
     })
   );
 }