]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: skip threadpool pause on shutdown when blackholed
authorSage Weil <sage@newdream.net>
Thu, 16 Feb 2012 23:18:58 +0000 (15:18 -0800)
committerSage Weil <sage@newdream.net>
Thu, 16 Feb 2012 23:18:58 +0000 (15:18 -0800)
We can't pause the threadpools if they're blocked on a blackholed
filestore.  Instead, just call _exit().

Signed-off-by: Sage Weil <sage@newdream.net>
src/osd/OSD.cc

index 67073a50f4aeb3c8e50281c0ffbe95c34d6e2c1e..5a75f133721f0d9f2848f28c7a3101a548446771 100644 (file)
@@ -813,16 +813,19 @@ void OSD::create_logger()
 
 void OSD::suicide(int exitcode)
 {
+  if (g_conf->filestore_blackhole) {
+    derr << " filestore_blackhole=true, doing abbreviated shutdown" << dendl;
+    _exit(exitcode);
+  }
+
   derr << " pausing thread pools" << dendl;
   op_tp.pause();
   disk_tp.pause();
   recovery_tp.pause();
   command_tp.pause();
 
-  if (!g_conf->filestore_blackhole) {
-    derr << " flushing io" << dendl;
-    store->sync_and_flush();
-  }
+  derr << " flushing io" << dendl;
+  store->sync_and_flush();
 
   derr << " removing pid file" << dendl;
   pidfile_remove();