]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: Handle destructor of KvStoreBench by adding io_ctx_ready bool
authorDavid Zafman <dzafman@redhat.com>
Wed, 10 Sep 2014 00:57:07 +0000 (17:57 -0700)
committerDavid Zafman <dzafman@redhat.com>
Mon, 20 Oct 2014 17:47:50 +0000 (10:47 -0700)
Signed-off-by: David Zafman <dzafman@redhat.com>
src/test/kv_store_bench.cc
src/test/kv_store_bench.h

index 2c212d29fe3457da701c8686917831e1c688d990..20f355209742f594161ee76374c1de31fe9a9200 100644 (file)
@@ -37,7 +37,8 @@ KvStoreBench::KvStoreBench()
   ops_in_flight(0),
   ops_in_flight_lock("KvStoreBench::ops_in_flight_lock"),
   rados_id("admin"),
-  pool_name("rbd")
+  pool_name("rbd"),
+  io_ctx_ready(false)
 {
   probs[25] = 'i';
   probs[50] = 'u';
@@ -47,9 +48,11 @@ KvStoreBench::KvStoreBench()
 
 KvStoreBench::~KvStoreBench()
 {
-  librados::ObjectWriteOperation owo;
-  owo.remove();
-  io_ctx.operate(client_name + ".done-setting", &owo);
+  if (io_ctx_ready) {
+    librados::ObjectWriteOperation owo;
+    owo.remove();
+    io_ctx.operate(client_name + ".done-setting", &owo);
+  }
   delete kvs;
 }
 
@@ -187,6 +190,7 @@ int KvStoreBench::setup(int argc, const char** argv) {
     rados.shutdown();
     return r;
   }
+  io_ctx_ready = true;
 
   if (clear_first) {
     librados::ObjectIterator it;
index 3ebb15fd9ef7c6c62f834844174f00542f91d214..d12c5e850c0b159823f340b59ddc7d1f45e6c131 100644 (file)
@@ -125,6 +125,7 @@ protected:
   librados::Rados rados;
   string rados_id;
   string pool_name;
+  bool io_ctx_ready;
   librados::IoCtx io_ctx;
 
   /**