]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os: implement inject_{m,}data_error in AlienStore.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 18 May 2021 14:38:50 +0000 (14:38 +0000)
committerKefu Chai <kchai@redhat.com>
Wed, 26 May 2021 00:05:51 +0000 (08:05 +0800)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/os/alienstore/alien_store.cc
src/crimson/os/alienstore/alien_store.h
src/crimson/os/futurized_store.h

index fea8c85d6ebaacc2a84dd65b7df0bafab0276add..ced278ad2f2f2dfa9b09cffa5354c95a256e0356 100644 (file)
@@ -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)
 {
index 4c5669e39ca74ef39928daaa436415533183d827..e6e474ebcffdda7252e2ec9558267debd1cc5e47 100644 (file)
@@ -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<std::tuple<int, std::string>> read_meta(
index 3cbc46fac74ef79b1607f6d5f895be1ac25f92fc..971093a47f60f1a2a2e8317054f3b653b491ac4a 100644 (file)
@@ -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<OmapIteratorRef> get_omap_iterator(
     CollectionRef ch,
     const ghobject_t& oid) = 0;