From a823c6b00d43d37bf8df023eec07d3fd2b54ccd3 Mon Sep 17 00:00:00 2001 From: Christian Theune Date: Thu, 8 Dec 2022 09:41:40 +0100 Subject: [PATCH] mon: fix iterator mishandling in PGMap::apply_incremental Fixes: https://tracker.ceph.com/issues/58303 Signed-off-by: Oliver Schmidt , Christian Theune (cherry picked from commit 6ba497f2e7a68517fc3a47b6cfd79a19724f8d39) --- src/mon/PGMap.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 2203176033fca..4158acc3a6da3 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1245,10 +1245,12 @@ void PGMap::apply_incremental(CephContext *cct, const Incremental& inc) stat_osd_sub(t->first, t->second); osd_stat.erase(t); } - for (auto i = pool_statfs.begin(); i != pool_statfs.end(); ++i) { + for (auto i = pool_statfs.begin(); i != pool_statfs.end();) { if (i->first.second == *p) { pg_pool_sum[i->first.first].sub(i->second); - pool_statfs.erase(i); + i = pool_statfs.erase(i); + } else { + ++i; } } } -- 2.39.5