}
#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;
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();