]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: fix method's flag handling on CEPH_OSD_OP_CALL.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Sat, 28 Mar 2020 00:32:32 +0000 (01:32 +0100)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Sat, 28 Mar 2020 00:37:45 +0000 (01:37 +0100)
This patch fixes a regression introduced in d8d0ab1a and
makes `ClsHello.BadMethods` green again.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/ops_executer.cc

index 158153d294195e54f6439d94ce43c69fe2d1c032..bed7f00be742b3f240ed22ff42e9e71b1bd0eea1 100644 (file)
@@ -74,7 +74,10 @@ OpsExecuter::call_errorator::future<> OpsExecuter::do_op_call(OSDOp& osd_op)
   }
 #endif
 
-  logger().debug("calling method {}.{}", cname, mname);
+  logger().debug("calling method {}.{}, num_read={}, num_write={}",
+                 cname, mname, num_read, num_write);
+  const auto prev_rd = num_read;
+  const auto prev_wr = num_write;
   return seastar::async(
     [this, method, indata=std::move(indata)]() mutable {
       ceph::bufferlist outdata;
@@ -83,10 +86,12 @@ OpsExecuter::call_errorator::future<> OpsExecuter::do_op_call(OSDOp& osd_op)
       return std::make_pair(ret, std::move(outdata));
     }
   ).then(
-    [prev_rd = num_read, prev_wr = num_write, this, &osd_op, flags]
+    [this, prev_rd, prev_wr, &osd_op, flags]
     (auto outcome) -> call_errorator::future<> {
       auto& [ret, outdata] = outcome;
-
+      logger().debug("do_op_call: method returned ret={}, outdata.length()={}"
+                     " while num_read={}, num_write={}",
+                     ret, outdata.length(), num_read, num_write);
       if (num_read > prev_rd && !(flags & CLS_METHOD_RD)) {
         logger().error("method tried to read object but is not marked RD");
         return crimson::ct_error::input_output_error::make();