]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: fix incorrect l_pq_executing_ops statistics when meet an invalid item in purge...
authorTang Junhui <tangjunhui@sangfor.com>
Fri, 23 Nov 2018 02:04:40 +0000 (10:04 +0800)
committerJunhui Tang <tangjunhui@sangfor.com.cn>
Sun, 9 Dec 2018 02:12:32 +0000 (10:12 +0800)
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 <tangjunhui@sangfor.com.cn>
Fixes: http://tracker.ceph.com/issues/37567
src/mds/PurgeQueue.cc

index 31b1c09777ffbc0e7a5b9b1b8a161c315c0a9198..09460ae6c114a3c622ae87f9b9ec90c5e5841447 100644 (file)
@@ -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;