From c2f21c04207b9a2a65e514994a775632b36d6874 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 26 Aug 2014 17:43:10 -0700 Subject: [PATCH] osd: fix osd_tp shutdown We need to clear the queue, not just drain the currently executing jobs. Fixes: #9218 Backport: firefly Signed-off-by: Sage Weil --- src/osd/OSD.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 9b4507ac93755..d92cd1182ffbe 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2413,8 +2413,10 @@ int OSD::shutdown() dout(10) << "recovery tp stopped" << dendl; osd_tp.drain(); + peering_wq.clear(); + scrub_finalize_wq.clear(); osd_tp.stop(); - dout(10) << "op tp stopped" << dendl; + dout(10) << "osd tp stopped" << dendl; osd_op_tp.drain(); osd_op_tp.stop(); @@ -2461,7 +2463,7 @@ int OSD::shutdown() Mutex::Locker l(pg_stat_queue_lock); assert(pg_stat_queue.empty()); } - peering_wq.clear(); + // Remove PGs #ifdef PG_DEBUG_REFS service.dump_live_pgids(); -- 2.39.5