From: Sage Weil Date: Tue, 4 Dec 2018 19:57:47 +0000 (-0600) Subject: osd: requeue waiting peering events from deleted slots in unprime_split_children X-Git-Tag: v14.1.0~694^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F25399%2Fhead;p=ceph.git osd: requeue waiting peering events from deleted slots in unprime_split_children These child slots we are deleting may have queued events that should be requeued and reexamined. For example, a pg query may be waiting for the split and then discarded, instead of being reexamined and processed via handle_pg_query_nopg(). Fixes: http://tracker.ceph.com/issues/37525 Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f6937ed79b98..3b9be43f3e6d 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -10221,6 +10221,7 @@ void OSDShard::unprime_split_children(spg_t parent, unsigned old_pg_num) i.first.get_ancestor(old_pg_num) == parent) { dout(10) << __func__ << " parent " << parent << " clearing " << i.first << dendl; + _wake_pg_slot(i.first, i.second.get()); to_delete.push_back(i.first); } }