From: Sage Weil Date: Fri, 27 Apr 2018 21:53:11 +0000 (-0500) Subject: osd: print desc for oldest slow op to osd log X-Git-Tag: v13.1.0~5^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ce6422af97a84cd717b308bd768b4d40cf1db510;p=ceph-ci.git osd: print desc for oldest slow op to osd log Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index b801b63c795..2aee59d9061 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -7009,18 +7009,26 @@ vector OSD::get_health_metrics() auto too_old = now; too_old -= cct->_conf->get_val("osd_op_complaint_time"); int slow = 0; + TrackedOpRef oldest_op; auto count_slow_ops = [&](TrackedOp& op) { if (op.get_initiated() < too_old) { lgeneric_subdout(cct,osd,20) << "slow op " << op.get_desc() << " initiated " << op.get_initiated() << dendl; slow++; + if (!oldest_op || op.get_initiated() < oldest_op->get_initiated()) { + oldest_op = &op; + } return true; } else { return false; } }; if (op_tracker.visit_ops_in_flight(&oldest_secs, count_slow_ops)) { + if (slow) { + derr << __func__ << " reporting " << slow << " slow ops, oldest is " + << oldest_op->get_desc() << dendl; + } metrics.emplace_back(daemon_metric::SLOW_OPS, slow, oldest_secs); } else { // no news is not good news.