From: Sridhar Seshasayee Date: Fri, 3 Jan 2020 09:26:13 +0000 (+0530) Subject: mon/OSDMonitor: Don't update mon cache settings if rocksdb is not used X-Git-Tag: v15.1.0~315^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F32473%2Fhead;p=ceph.git mon/OSDMonitor: Don't update mon cache settings if rocksdb is not used Currently any update to mon cache config settings like 'mon_memory_target' or 'rocksdb_cache_size' will cause a crash in case rocksdb and priority cache manager is not being used. If rocksdb (and therefore priority cache manager) is not being used, then the update to the mon caches is ignored. Also, reduce the log levels of some important log messages to help in debugging. Fixes: https://tracker.ceph.com/issues/43454 Signed-off-by: Sridhar Seshasayee --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index d0d5131ee15d..c83d417ac5c2 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -456,7 +456,7 @@ void OSDMonitor::handle_conf_change(const ConfigProxy& conf, << g_conf()->mon_memory_target << " rocksdb_cache_size:" << g_conf()->rocksdb_cache_size - << ". Invalid size provided." + << ". Unable to update cache size." << dendl; } } @@ -492,6 +492,11 @@ int OSDMonitor::_update_mon_cache_settings() return -EINVAL; } + if (pcm == nullptr && rocksdb_binned_kv_cache == nullptr) { + derr << __func__ << " not using pcm and rocksdb" << dendl; + return -EINVAL; + } + uint64_t old_mon_memory_target = mon_memory_target; uint64_t old_rocksdb_cache_size = rocksdb_cache_size; @@ -530,7 +535,7 @@ int OSDMonitor::_update_mon_cache_settings() pcm->tune_memory(); pcm->balance(); _set_new_cache_sizes(); - dout(10) << __func__ << " Updated mon cache setting." + dout(1) << __func__ << " Updated mon cache setting." << " target: " << target << " min: " << min << " max: " << max @@ -933,7 +938,7 @@ int OSDMonitor::register_cache_with_pcm() pcm->insert("kv", rocksdb_binned_kv_cache, true); pcm->insert("inc", inc_cache, true); pcm->insert("full", full_cache, true); - dout(10) << __func__ << " pcm target: " << target + dout(1) << __func__ << " pcm target: " << target << " pcm max: " << max << " pcm min: " << min << " inc_osd_cache size: " << inc_osd_cache.get_size() @@ -959,7 +964,7 @@ int OSDMonitor::_set_cache_ratios() inc_cache->set_cache_ratio(cache_inc_ratio); full_cache->set_cache_ratio(cache_full_ratio); - dout(10) << __func__ << " kv ratio " << cache_kv_ratio + dout(1) << __func__ << " kv ratio " << cache_kv_ratio << " inc ratio " << cache_inc_ratio << " full ratio " << cache_full_ratio << dendl; @@ -5096,7 +5101,7 @@ void OSDMonitor::_set_new_cache_sizes() inc_osd_cache.set_bytes(inc_alloc); full_osd_cache.set_bytes(full_alloc); - dout(10) << __func__ << " cache_size:" << cache_size + dout(1) << __func__ << " cache_size:" << cache_size << " inc_alloc: " << inc_alloc << " full_alloc: " << full_alloc << " kv_alloc: " << kv_alloc