]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: fix mds peer request 'no_available_op_found'
authorYanhu Cao <gmayyyha@gmail.com>
Mon, 27 Jul 2020 02:23:01 +0000 (10:23 +0800)
committerYanhu Cao <gmayyyha@gmail.com>
Mon, 27 Jul 2020 03:46:52 +0000 (11:46 +0800)
Fixes: https://tracker.ceph.com/issues/46583
Signed-off-by: Yanhu Cao <gmayyyha@gmail.com>
src/mds/Mutation.cc

index 5359e0a91ce4d3e97743344ec6e335d9981ce6b2..bd3e36cbf00e3e890b4a11cfb73db5b101c444a7 100644 (file)
@@ -509,26 +509,28 @@ void MDRequestImpl::_dump(Formatter *f) const
       f->dump_stream("client") << _client_request->get_orig_source();
       f->dump_int("tid", _client_request->get_tid());
       f->close_section(); // client_info
-    } else if (is_peer() && _peer_request) { // replies go to an existing mdr
+    } else if (is_peer()) { // replies go to an existing mdr
       f->dump_string("op_type", "peer_request");
       f->open_object_section("leader_info");
-      f->dump_stream("leader") << _peer_request->get_orig_source();
+      f->dump_stream("leader") << peer_to_mds;
       f->close_section(); // leader_info
 
-      f->open_object_section("request_info");
-      f->dump_int("attempt", _peer_request->get_attempt());
-      f->dump_string("op_type",
-         MMDSPeerRequest::get_opname(_peer_request->get_op()));
-      f->dump_int("lock_type", _peer_request->get_lock_type());
-      f->dump_stream("object_info") << _peer_request->get_object_info();
-      f->dump_stream("srcdnpath") << _peer_request->srcdnpath;
-      f->dump_stream("destdnpath") << _peer_request->destdnpath;
-      f->dump_stream("witnesses") << _peer_request->witnesses;
-      f->dump_bool("has_inode_export",
-         _peer_request->inode_export_v != 0);
-      f->dump_int("inode_export_v", _peer_request->inode_export_v);
-      f->dump_stream("op_stamp") << _peer_request->op_stamp;
-      f->close_section(); // request_info
+      if (_peer_request) {
+        f->open_object_section("request_info");
+        f->dump_int("attempt", _peer_request->get_attempt());
+        f->dump_string("op_type",
+           MMDSPeerRequest::get_opname(_peer_request->get_op()));
+        f->dump_int("lock_type", _peer_request->get_lock_type());
+        f->dump_stream("object_info") << _peer_request->get_object_info();
+        f->dump_stream("srcdnpath") << _peer_request->srcdnpath;
+        f->dump_stream("destdnpath") << _peer_request->destdnpath;
+        f->dump_stream("witnesses") << _peer_request->witnesses;
+        f->dump_bool("has_inode_export",
+           _peer_request->inode_export_v != 0);
+        f->dump_int("inode_export_v", _peer_request->inode_export_v);
+        f->dump_stream("op_stamp") << _peer_request->op_stamp;
+        f->close_section(); // request_info
+      }
     }
     else if (internal_op != -1) { // internal request
       f->dump_string("op_type", "internal_op");
@@ -560,6 +562,8 @@ void MDRequestImpl::_dump_op_descriptor_unlocked(ostream& stream) const
     _client_request->print(stream);
   } else if (_peer_request) {
     _peer_request->print(stream);
+  } else if (is_peer()) {
+    stream << "peer_request:" << reqid;
   } else if (internal_op >= 0) {
     stream << "internal op " << ceph_mds_op_name(internal_op) << ":" << reqid;
   } else {