]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Fix mds dump_ops_in_flight crashing ocassionally
authorzhangzhi <zhangzhi@localhost.localdomain>
Thu, 9 Jul 2015 05:37:09 +0000 (13:37 +0800)
committerzhangzhi <zhangzhi@localhost.localdomain>
Thu, 9 Jul 2015 05:37:09 +0000 (13:37 +0800)
src/mds/Mutation.cc

index 0ae173278b7806619c88192572eb049b13e7e713..27eadf9d82e6414cdadf29ba2d0defb2ed6bf466 100644 (file)
@@ -329,8 +329,7 @@ void MDRequestImpl::_dump(utime_t now, 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 (slave_request) {
-      assert(!slave_request->is_reply()); // replies go to an existing mdr
+    } else if (slave_request && !slave_request->is_reply()) { // replies go to an existing mdr
       f->dump_string("op_type", "slave_request");
       f->open_object_section("master_info");
       f->dump_stream("master") << slave_request->get_orig_source();
@@ -353,12 +352,14 @@ void MDRequestImpl::_dump(utime_t now, Formatter *f) const
       f->dump_stream("op_stamp") << slave_request->op_stamp;
       f->close_section(); // request_info
     }
-    else { // internal request
-      assert(internal_op != -1);
+    else if (internal_op != -1) { // internal request
       f->dump_string("op_type", "internal_op");
       f->dump_int("internal_op", internal_op);
       f->dump_string("op_name", ceph_mds_op_name(internal_op));
     }
+    else {
+      f->dump_string("op_type", "no_available_op_found");
+    }
   }
   {
     f->open_array_section("events");