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: v14.2.12~31^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F37476%2Fhead;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 (cherry picked from commit 6090acdae4495e11f117df2330b579744eeada2a) --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 952e1ae19d8b..38bc187748fc 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());