From ca61ce4485a56dead04a31e47bd1093217d1f222 Mon Sep 17 00:00:00 2001 From: Tang Junhui Date: Fri, 23 Nov 2018 10:04:40 +0800 Subject: [PATCH] mds: fix incorrect l_pq_executing_ops statistics when meet an invalid item in purge queue l_pq_executing_ops should subtract the ops we added previous in the condition we meet an invalid item in the purge queue, otherwise the statistics would always show some ops in l_pq_executing_ops. Signed-off-by: Junhui Tang Fixes: http://tracker.ceph.com/issues/37567 --- src/mds/PurgeQueue.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mds/PurgeQueue.cc b/src/mds/PurgeQueue.cc index 31b1c09777f..09460ae6c11 100644 --- a/src/mds/PurgeQueue.cc +++ b/src/mds/PurgeQueue.cc @@ -433,7 +433,8 @@ void PurgeQueue::_execute_item( in_flight[expire_to] = item; logger->set(l_pq_executing, in_flight.size()); - ops_in_flight += _calculate_ops(item); + auto ops = _calculate_ops(item); + ops_in_flight += ops; logger->set(l_pq_executing_ops, ops_in_flight); SnapContext nullsnapc; @@ -500,6 +501,8 @@ void PurgeQueue::_execute_item( } else { derr << "Invalid item (action=" << item.action << ") in purge queue, " "dropping it" << dendl; + ops_in_flight -= ops; + logger->set(l_pq_executing_ops, ops_in_flight); in_flight.erase(expire_to); logger->set(l_pq_executing, in_flight.size()); return; -- 2.39.5