]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Merge branch 'print-blocked-op' of git://github.com/majianpeng/ceph
authorSage Weil <sage@redhat.com>
Mon, 8 Feb 2016 14:14:21 +0000 (09:14 -0500)
committerSage Weil <sage@redhat.com>
Mon, 8 Feb 2016 14:14:21 +0000 (09:14 -0500)
Reviewed-by: Sage Weil <sage@redhat.com>
1  2 
src/common/TrackedOp.cc
src/common/TrackedOp.h
src/mds/MDSDaemon.cc
src/mds/MDSRank.cc
src/osd/OSD.cc

Simple merge
index 3663290ec08eb038e88a1fbf5a83ec0fc17185bd,3b60771060c21c4fe6a1ee34e9d70f53e6888e1c..c1d8eb6ad6f608e15dc413941dd98dafea5032c6
@@@ -100,11 -97,7 +100,11 @@@ public
    void set_history_size_and_duration(uint32_t new_size, uint32_t new_duration) {
      history.set_size_and_duration(new_size, new_duration);
    }
-   void dump_ops_in_flight(Formatter *f);
 +  void set_tracking(bool enable) {
 +    RWLock::WLocker l(lock);
 +    tracking_enabled = enable;
 +  }
+   void dump_ops_in_flight(Formatter *f, bool print_only_blocked=false);
    void dump_historic_ops(Formatter *f);
    void register_inflight_op(xlist<TrackedOp*>::item *i);
    void unregister_inflight_op(TrackedOp *i);
Simple merge
index 090982ecf0a994f58038dfdadf35d16119e2c1a7,65a9d3008626e29f37feeb6614e6738ab954e227..fcf27330bd843b1fa7db1c93f7a1166c10dfd20d
@@@ -1667,16 -1634,23 +1667,25 @@@ bool MDSRankDispatcher::handle_asok_com
  {
    if (command == "dump_ops_in_flight" ||
               command == "ops") {
 +    RWLock::RLocker l(op_tracker.lock);
      if (!op_tracker.tracking_enabled) {
-       ss << "op_tracker tracking is not enabled";
+       ss << "op_tracker tracking is not enabled now, so no ops are tracked currently, even those get stuck. \
+         please enable \"osd_enable_op_tracker\", and the tracker will start to track new ops received afterwards.";
      } else {
        op_tracker.dump_ops_in_flight(f);
      }
+   } else if (command == "dump_blocked_ops") {
+     if (!op_tracker.tracking_enabled) {
+       ss << "op_tracker tracking is not enabled now, so no ops are tracked currently, even those get stuck. \
+       Please enable \"osd_enable_op_tracker\", and the tracker will start to track new ops received afterwards.";
+     } else {
+       op_tracker.dump_ops_in_flight(f, true);
+     }
    } else if (command == "dump_historic_ops") {
 +    RWLock::RLocker l(op_tracker.lock);
      if (!op_tracker.tracking_enabled) {
-       ss << "op_tracker tracking is not enabled";
+       ss << "op_tracker tracking is not enabled now, so no ops are tracked currently, even those get stuck. \
+         please enable \"osd_enable_op_tracker\", and the tracker will start to track new ops received afterwards.";
      } else {
        op_tracker.dump_historic_ops(f);
      }
diff --cc src/osd/OSD.cc
index 2d60d4cbbca9c0268a81f828f11bced33034cdf8,3683a0b826717928c65bc0ced7cb4599138a3565..7345d535301b84d1ec3744827043d4c15378048b
@@@ -1703,16 -1659,24 +1703,26 @@@ bool OSD::asok_command(string command, 
      store->flush_journal();
    } else if (command == "dump_ops_in_flight" ||
             command == "ops") {
 +    RWLock::RLocker l(op_tracker.lock);
      if (!op_tracker.tracking_enabled) {
-       ss << "op_tracker tracking is not enabled";
+       ss << "op_tracker tracking is not enabled now, so no ops are tracked currently, even those get stuck. \
+       Please enable \"osd_enable_op_tracker\", and the tracker will start to track new ops received afterwards.";
      } else {
        op_tracker.dump_ops_in_flight(f);
      }
+   } else if (command == "dump_blocked_ops") {
+     if (!op_tracker.tracking_enabled) {
+       ss << "op_tracker tracking is not enabled now, so no ops are tracked currently, even those get stuck. \
+       Please enable \"osd_enable_op_tracker\", and the tracker will start to track new ops received afterwards.";
+     } else {
+       op_tracker.dump_ops_in_flight(f, true);
+     }
    } else if (command == "dump_historic_ops") {
 +    RWLock::RLocker l(op_tracker.lock);
      if (!op_tracker.tracking_enabled) {
-       ss << "op_tracker tracking is not enabled";
+       ss << "op_tracker tracking is not enabled now, so no ops are tracked currently, even those get stuck. \
+       Please enable \"osd_enable_op_tracker\", and the tracker will start to track new ops received afterwards.";
      } else {
        op_tracker.dump_historic_ops(f);
      }