From f01202de89168f98dea4d459f5c212b1787d55b4 Mon Sep 17 00:00:00 2001 From: Ray Lv Date: Fri, 17 Jan 2014 20:42:54 +0800 Subject: [PATCH] Fixes: #7172 To ensure LevelDBStore::db is destroyed before dependent LevelDBStore::db_cache and LevelDBStore::filterpolicy. Signed-off-by: Signed-off-by: Ray Lv --- src/os/LevelDBStore.cc | 3 +++ src/os/LevelDBStore.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/os/LevelDBStore.cc b/src/os/LevelDBStore.cc index bd4dcdcb76f..bf98b67ad67 100644 --- a/src/os/LevelDBStore.cc +++ b/src/os/LevelDBStore.cc @@ -75,6 +75,9 @@ LevelDBStore::~LevelDBStore() { close(); delete logger; + + // Ensure db is destroyed before dependent db_cache and filterpolicy + db.reset(); } void LevelDBStore::close() diff --git a/src/os/LevelDBStore.h b/src/os/LevelDBStore.h index bc5b612a97a..d0a41f27960 100644 --- a/src/os/LevelDBStore.h +++ b/src/os/LevelDBStore.h @@ -48,11 +48,11 @@ class LevelDBStore : public KeyValueDB { CephContext *cct; PerfCounters *logger; string path; - boost::scoped_ptr db; boost::scoped_ptr db_cache; #ifdef HAVE_LEVELDB_FILTER_POLICY boost::scoped_ptr filterpolicy; #endif + boost::scoped_ptr db; int init(ostream &out, bool create_if_missing); -- 2.47.3