From: haodong Date: Tue, 2 Aug 2016 18:19:03 +0000 (+0800) Subject: kv: delete store after pg destructor is called in OSD shutdown. X-Git-Tag: v11.0.1~441^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=cbca389d822b8d9029e5e882dc91e5a4d4dd05c2;p=ceph-ci.git kv: delete store after pg destructor is called in OSD shutdown. 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 --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 6b0782621ff..07d63344ce2 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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();