From: Aleksei Gutikov Date: Mon, 30 Mar 2020 12:27:45 +0000 (+0300) Subject: mgr: decrease pool stats if pg was removed X-Git-Tag: v16.1.0~1481^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6090acdae4495e11f117df2330b579744eeada2a;p=ceph.git 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 --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 1cfb85d11e14..422d890df60c 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1214,6 +1214,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());