From ea56dfdc663f8b0e19346bb63ffe3fec0c7759c4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 9 Nov 2010 13:08:56 -0800 Subject: [PATCH] osd: handle osds that no longer exist in prior_set_affected Consider no-longer-existent OSDs lost. Signed-off-by: Sage Weil --- src/osd/PG.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index beae6a7c170ed..788a3988c8df7 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -799,7 +799,13 @@ bool PG::prior_set_affected(OSDMap *osdmap) dout(10) << "prior_set_affected: osd" << *p << " now up" << dendl; return true; } - // did someone in the prior set get lost? + + // did someone in the prior set get lost or destroyed? + if (!osdmap->exists(o)) { + dout(10) << "prior_set_affected: osd" << o << " no longer exists" << dendl; + return true; + } + const osd_info_t& pinfo(osdmap->get_info(o)); if (pinfo.lost_at > pinfo.up_from) { set::const_iterator pl = prior_set_lost.find(o); -- 2.39.5