From 9f35081ae2bb485b8100d3b6e9ac5a92f1663471 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 4 Dec 2018 13:57:47 -0600 Subject: [PATCH] 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 --- src/osd/OSD.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f6937ed79b9..3b9be43f3e6 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); } } -- 2.39.5