]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: start annotating coroutines status and description
authorYehuda Sadeh <yehuda@redhat.com>
Tue, 24 Nov 2015 03:34:18 +0000 (19:34 -0800)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 00:13:38 +0000 (16:13 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/rgw_cr_rados.cc

index fa72171e273f6c032c9fbab7ac1145fffa5dc46c..ab66ef1c7390fd7ee9f0679e3cec5004d2cbb7b1 100644 (file)
@@ -200,6 +200,16 @@ RGWRadosSetOmapKeysCR::RGWRadosSetOmapKeysCR(RGWRados *_store,
                                                 entries(_entries),
                                                 pool(_pool), oid(_oid), cn(NULL)
 {
+  stringstream s;
+  s << "set omap keys dest=" << pool.name << "/" << oid << " keys=[" << s.str() << "]";
+  for (auto i = entries.begin(); i != entries.end(); ++i) {
+    if (i != entries.begin()) {
+      s << ", ";
+    }
+    s << i->first;
+  }
+  s << "]";
+  set_description(s.str());
 }
 
 RGWRadosSetOmapKeysCR::~RGWRadosSetOmapKeysCR()
@@ -217,6 +227,8 @@ int RGWRadosSetOmapKeysCR::send_request()
     return r;
   }
 
+  set_status("sending request");
+
   librados::ObjectWriteOperation op;
   op.omap_set(entries);
 
@@ -227,6 +239,13 @@ int RGWRadosSetOmapKeysCR::send_request()
 
 int RGWRadosSetOmapKeysCR::request_complete()
 {
+  stringstream s;
+  int r = cn->completion()->get_return_value();
+
+  s << "request complete; ret=" << r;
+
+  set_status(s.str());
+
   return cn->completion()->get_return_value();
 }
 
@@ -239,6 +258,9 @@ RGWRadosGetOmapKeysCR::RGWRadosGetOmapKeysCR(RGWRados *_store,
                                                 entries(_entries), max_entries(_max_entries), rval(0),
                                                 pool(_pool), oid(_oid), cn(NULL)
 {
+  stringstream s;
+  s << "set omap keys dest=" << pool.name << "/" << oid << " marker=" << marker;
+  set_description(s.str());
 }
 
 RGWRadosGetOmapKeysCR::~RGWRadosGetOmapKeysCR()
@@ -253,6 +275,8 @@ int RGWRadosGetOmapKeysCR::send_request() {
     return r;
   }
 
+  set_status("send request");
+
   librados::ObjectReadOperation op;
   op.omap_get_vals(marker, max_entries, entries, &rval);
 
@@ -272,6 +296,8 @@ RGWSimpleRadosLockCR::RGWSimpleRadosLockCR(RGWAsyncRadosProcessor *_async_rados,
                                                 pool(_pool), oid(_oid),
                                                 req(NULL)
 {
+  stringstream s;
+  s << "rados lock dest=" << pool << "/" << oid << " lock=" << lock_name << " cookie=" << cookie << " duration=" << duration;
 }
 
 RGWSimpleRadosLockCR::~RGWSimpleRadosLockCR()
@@ -281,6 +307,7 @@ RGWSimpleRadosLockCR::~RGWSimpleRadosLockCR()
 
 int RGWSimpleRadosLockCR::send_request()
 {
+  set_status("sending request");
   rgw_obj obj = rgw_obj(pool, oid);
   req = new RGWAsyncLockSystemObj(stack->create_completion_notifier(),
                                  store, NULL, obj, lock_name, cookie, duration);
@@ -290,6 +317,9 @@ int RGWSimpleRadosLockCR::send_request()
 
 int RGWSimpleRadosLockCR::request_complete()
 {
+  stringstream s;
+  s << "request complete; ret=" << req->get_ret_status();
+  set_status(s.str());
   return req->get_ret_status();
 }
 
@@ -303,6 +333,9 @@ RGWSimpleRadosUnlockCR::RGWSimpleRadosUnlockCR(RGWAsyncRadosProcessor *_async_ra
                                                 pool(_pool), oid(_oid),
                                                 req(NULL)
 {
+  stringstream s;
+  s << "rados unlock dest=" << pool << "/" << oid << " lock=" << lock_name << " cookie=" << cookie;
+  set_description(s.str());
 }
 
 RGWSimpleRadosUnlockCR::~RGWSimpleRadosUnlockCR()
@@ -312,6 +345,8 @@ RGWSimpleRadosUnlockCR::~RGWSimpleRadosUnlockCR()
 
 int RGWSimpleRadosUnlockCR::send_request()
 {
+  set_status("sending request");
+
   rgw_obj obj = rgw_obj(pool, oid);
   req = new RGWAsyncUnlockSystemObj(stack->create_completion_notifier(),
                                  store, NULL, obj, lock_name, cookie);
@@ -321,6 +356,9 @@ int RGWSimpleRadosUnlockCR::send_request()
 
 int RGWSimpleRadosUnlockCR::request_complete()
 {
+  stringstream s;
+  s << "request complete; ret=" << req->get_ret_status();
+  set_status(s.str());
   return req->get_ret_status();
 }
 
@@ -330,18 +368,22 @@ int RGWOmapAppend::operate() {
   reenter(this) {
     for (;;) {
       if (!has_product() && going_down) {
+        set_status("going down");
         break;
       }
+      set_status("waiting for product");
       yield wait_for_product();
       yield {
         string entry;
         while (consume(&entry)) {
+          set_status(string("adding entry: ") + entry);
           entries[entry] = bufferlist();
           if (entries.size() >= OMAP_APPEND_MAX_ENTRIES) {
             break;
           }
         }
         if (entries.size() >= OMAP_APPEND_MAX_ENTRIES || going_down) {
+          set_status(string("flushing to omap"));
           call(new RGWRadosSetOmapKeysCR(store, pool, oid, entries));
           entries.clear();
         }