From: Christian Theune Date: Thu, 8 Dec 2022 08:41:40 +0000 (+0100) Subject: mon: fix iterator mishandling in PGMap::apply_incremental X-Git-Tag: v16.2.15~50^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=a823c6b00d43d37bf8df023eec07d3fd2b54ccd3;p=ceph.git 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) --- 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; } } }