]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
kv: delete store after pg destructor is called in OSD shutdown.
authorhaodong <haodong.tang@intel.com>
Tue, 2 Aug 2016 18:19:03 +0000 (02:19 +0800)
committerhaodong <haodong.tang@intel.com>
Thu, 18 Aug 2016 07:17:40 +0000 (15:17 +0800)
Using memdb for bluestore kvbackend, we will hit segfault when we use
'kill' command to shut down osd process. After destructing pg, some
reference to bluestore will be release, but bluestore has been deleted
at this time.

Signed-off-by: Haodong Tang <haodong.tang@intel.com>
src/osd/OSD.cc

index 6b0782621ffe75c6f79c6f6653b8968445dfb1eb..07d63344ce2f07d2ffb27c51d459db55938353dc 100644 (file)
@@ -2716,12 +2716,6 @@ int OSD::shutdown()
         << cpp_strerror(r) << dendl;
   }
 
-  dout(10) << "syncing store" << dendl;
-  enable_disable_fuse(true);
-  store->umount();
-  delete store;
-  store = 0;
-  dout(10) << "Store synced" << dendl;
 
   {
     Mutex::Locker l(pg_stat_queue_lock);
@@ -2757,6 +2751,13 @@ int OSD::shutdown()
 #endif
   cct->_conf->remove_observer(this);
 
+  dout(10) << "syncing store" << dendl;
+  enable_disable_fuse(true);
+  store->umount();
+  delete store;
+  store = 0;
+  dout(10) << "Store synced" << dendl;
+
   monc->shutdown();
   osd_lock.Unlock();