From 3387c1c5aee0c9943f11358844616dbe7138958c Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 18 May 2021 14:38:50 +0000 Subject: [PATCH] crimson/os: implement inject_{m,}data_error in AlienStore. Signed-off-by: Radoslaw Zarzynski --- src/crimson/os/alienstore/alien_store.cc | 16 ++++++++++++++++ src/crimson/os/alienstore/alien_store.h | 4 ++++ src/crimson/os/futurized_store.h | 8 ++++++++ 3 files changed, 28 insertions(+) diff --git a/src/crimson/os/alienstore/alien_store.cc b/src/crimson/os/alienstore/alien_store.cc index fea8c85d6ebaa..ced278ad2f2f2 100644 --- a/src/crimson/os/alienstore/alien_store.cc +++ b/src/crimson/os/alienstore/alien_store.cc @@ -400,6 +400,22 @@ seastar::future<> AlienStore::do_transaction(CollectionRef ch, }); } +seastar::future<> AlienStore::inject_data_error(const ghobject_t& o) +{ + logger().debug("{}", __func__); + return tp->submit([=] { + return store->inject_data_error(o); + }); +} + +seastar::future<> AlienStore::inject_mdata_error(const ghobject_t& o) +{ + logger().debug("{}", __func__); + return tp->submit([=] { + return store->inject_mdata_error(o); + }); +} + seastar::future<> AlienStore::write_meta(const std::string& key, const std::string& value) { diff --git a/src/crimson/os/alienstore/alien_store.h b/src/crimson/os/alienstore/alien_store.h index 4c5669e39ca74..e6e474ebcffdd 100644 --- a/src/crimson/os/alienstore/alien_store.h +++ b/src/crimson/os/alienstore/alien_store.h @@ -90,6 +90,10 @@ public: seastar::future<> do_transaction(CollectionRef c, ceph::os::Transaction&& txn) final; + // error injection + seastar::future<> inject_data_error(const ghobject_t& o) final; + seastar::future<> inject_mdata_error(const ghobject_t& o) final; + seastar::future<> write_meta(const std::string& key, const std::string& value) final; seastar::future> read_meta( diff --git a/src/crimson/os/futurized_store.h b/src/crimson/os/futurized_store.h index 3cbc46fac74ef..971093a47f60f 100644 --- a/src/crimson/os/futurized_store.h +++ b/src/crimson/os/futurized_store.h @@ -131,6 +131,14 @@ public: virtual seastar::future<> do_transaction(CollectionRef ch, ceph::os::Transaction&& txn) = 0; + // error injection + virtual seastar::future<> inject_data_error(const ghobject_t& o) { + return seastar::now(); + } + virtual seastar::future<> inject_mdata_error(const ghobject_t& o) { + return seastar::now(); + } + virtual seastar::future get_omap_iterator( CollectionRef ch, const ghobject_t& oid) = 0; -- 2.39.5