From 3f3c0dcc4b3b4e254b6d3fcb32ade441d60d939c Mon Sep 17 00:00:00 2001 From: Xiubo Li Date: Wed, 19 Jun 2024 11:27:33 +0800 Subject: [PATCH] common/TrackedOp: do not count the ops marked as nowarn If an op is marked as nowarn then it won't be counted as the slow requests, but currently it will count the initiated time when iterating the inflight ops. For example: [WRN] : 1 slow requests, 1 included below; oldest blocked for > 38.764892 secs [WRN] : slow request 33.875059 seconds old, received at 2024-06-17T14:14:34.228261+0000: client_request(client.78109915:11369251 mkdir #0x1008ecedea2/chk-89588 2024-06-17T14:14:34.097825+0000 caller_uid=1002960000, caller_gid=0{0,1002960000,}) currently failed to wrlock, waiting The oldest blocked request is 38.764892 old, but the oldest slow request reported is 33.875059 old. Fixes: commit e4160d7e783 ("mds: don't report slow request for blocked filelock request") Fixes: https://tracker.ceph.com/issues/66557 Signed-off-by: Xiubo Li (cherry picked from commit 8debaf59b1d07e2dc48e96052800d67155e71ae4) Conflicts: - The commit c036b151465("common: support long running ops without slow warnings") is missing --- src/common/TrackedOp.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc index 32a1ab472a8..96cfa2a1cbc 100644 --- a/src/common/TrackedOp.cc +++ b/src/common/TrackedOp.cc @@ -342,12 +342,15 @@ bool OpTracker::visit_ops_in_flight(utime_t* oldest_secs, for (const auto sdata : sharded_in_flight_list) { ceph_assert(sdata); std::lock_guard locker(sdata->ops_in_flight_lock_sharded); - if (!sdata->ops_in_flight_sharded.empty()) { - utime_t oldest_op_tmp = - sdata->ops_in_flight_sharded.front().get_initiated(); + for (auto& op : sdata->ops_in_flight_sharded) { + if (!op.warn_interval_multiplier) + continue; + + utime_t oldest_op_tmp = op.get_initiated(); if (oldest_op_tmp < oldest_op) { oldest_op = oldest_op_tmp; } + break; } std::transform(std::begin(sdata->ops_in_flight_sharded), std::end(sdata->ops_in_flight_sharded), -- 2.47.3