From: Tang Junhui Date: Fri, 23 Nov 2018 02:04:40 +0000 (+0800) Subject: mds: fix incorrect l_pq_executing_ops statistics when meet an invalid item in purge... X-Git-Tag: v12.2.11~59^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=32b11c730ebe1bee47ba5a8a19cf4917cd586c1c;p=ceph.git 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 (cherry picked from commit ca61ce4485a56dead04a31e47bd1093217d1f222) --- diff --git a/src/mds/PurgeQueue.cc b/src/mds/PurgeQueue.cc index fa5d43f6229f..e8c32f171743 100644 --- a/src/mds/PurgeQueue.cc +++ b/src/mds/PurgeQueue.cc @@ -419,7 +419,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; @@ -486,6 +487,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;