From b821ca5b552c062153ee7ebdae3010bc67aa0081 Mon Sep 17 00:00:00 2001 From: Aleksei Gutikov Date: Mon, 30 Mar 2020 15:27:45 +0300 Subject: [PATCH] mgr: decrease pool stats if pg was removed After merge of placement groups resulting pg contains objects from itself and merged one. PGMap::apply_incremental treat this growth as pool stats delta, but forget to decrease stats for removed pg. Fixes: https://tracker.ceph.com/issues/44815 Signed-off-by: Aleksei Gutikov (cherry picked from commit 6090acdae4495e11f117df2330b579744eeada2a) --- src/mon/PGMap.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 952e1ae19d8..38bc187748f 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1183,6 +1183,13 @@ void PGMap::apply_incremental(CephContext *cct, const Incremental& inc) bool pool_erased = false; if (s != pg_stat.end()) { pool_erased = stat_pg_sub(removed_pg, s->second); + + // decrease pool stats if pg was removed + auto pool_stats_it = pg_pool_sum.find(removed_pg.pool()); + if (pool_stats_it != pg_pool_sum.end()) { + pool_stats_it->second.sub(s->second); + } + pg_stat.erase(s); if (pool_erased) { deleted_pools.insert(removed_pg.pool()); -- 2.47.3