]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix osd_tp shutdown 2335/head
authorSage Weil <sage@redhat.com>
Wed, 27 Aug 2014 00:43:10 +0000 (17:43 -0700)
committerSage Weil <sage@redhat.com>
Wed, 27 Aug 2014 00:43:10 +0000 (17:43 -0700)
We need to clear the queue, not just drain the currently executing jobs.

Fixes: #9218
Backport: firefly
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc

index 9b4507ac937552f55a22921192e8b6e1a86c9273..d92cd1182ffbe820b9d6956984c9c318e610340f 100644 (file)
@@ -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();