From 85c65a58cc454d9181ed64a4e5e4af0fea3812c6 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Thu, 15 Nov 2018 13:56:19 +0800 Subject: [PATCH] tools/ceph_kvstore_tool: do not open rocksdb when repairing it before this change, the `need_open_db` parameter is passed to the constructor of BlueStore as `min_alloc_size`. and rocksdb will fail to repair because Repairer::Run() also tries to acquire the db lock, and it will fail to do so if the lock file is already acquired by BlueStore::_mount(). Signed-off-by: Kefu Chai --- src/tools/ceph_kvstore_tool.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tools/ceph_kvstore_tool.cc b/src/tools/ceph_kvstore_tool.cc index 4198f09a5d2..c66853a73ab 100644 --- a/src/tools/ceph_kvstore_tool.cc +++ b/src/tools/ceph_kvstore_tool.cc @@ -62,9 +62,9 @@ class StoreTool StoreTool(string type, const string &path, bool need_open_db=true) : store_path(path) { if (type == "bluestore-kv") { #ifdef WITH_BLUESTORE - auto bluestore = new BlueStore(g_ceph_context, path, need_open_db); + auto bluestore = new BlueStore(g_ceph_context, path); KeyValueDB *db_ptr; - int r = bluestore->start_kv_only(&db_ptr); + int r = bluestore->start_kv_only(&db_ptr, need_open_db); if (r < 0) { exit(1); } -- 2.39.5