From c95b23ad77ea52599cda01abfd2a523a08b9b152 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 190b93bb824..fa69a5f8b27 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -1212,10 +1212,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