From 75c7a1d0fa75c0164c027d3430efa1472540c849 Mon Sep 17 00:00:00 2001 From: Wang XiangYu Date: Mon, 15 Jun 2020 22:44:58 +0800 Subject: [PATCH] fix cache.cache_size range check error (#2565) * fix cache.cache_size range check error Signed-off-by: wxyu * update ci Signed-off-by: wxyu --- CHANGELOG.md | 1 + core/src/config/Config.cpp | 2 +- core/unittest/server/test_config.cpp | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb47555e..3a5f5d5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ Please mark all change in change log and use the issue from GitHub - \#2373 Build index for small segment waste time on waiting background index thread finish - \#2394 Drop collection timeout if too many partitions created on collection - \#2549 Launch server fail using demo config +- \#2564 cache.cache_size range check error ## Feature - \#2363 Update branch version diff --git a/core/src/config/Config.cpp b/core/src/config/Config.cpp index 87a1762d..b93e4a81 100644 --- a/core/src/config/Config.cpp +++ b/core/src/config/Config.cpp @@ -1189,7 +1189,7 @@ Config::CheckCacheConfigCpuCacheCapacity(const std::string& value) { std::string str = GetConfigStr(CONFIG_CACHE, CONFIG_CACHE_INSERT_BUFFER_SIZE, "0"); - int64_t insert_buffer_size = parse_bytes(value, err); + int64_t insert_buffer_size = parse_bytes(str, err); fiu_do_on("Config.CheckCacheConfigCpuCacheCapacity.large_insert_buffer", insert_buffer_size = total_mem + 1); if (insert_buffer_size + cache_size >= total_mem) { std::string msg = "Invalid cpu cache size: " + value + diff --git a/core/unittest/server/test_config.cpp b/core/unittest/server/test_config.cpp index 3e3c5e17..da41b875 100644 --- a/core/unittest/server/test_config.cpp +++ b/core/unittest/server/test_config.cpp @@ -256,6 +256,30 @@ TEST_F(ConfigTest, SERVER_CONFIG_VALID_TEST) { ASSERT_TRUE(config.GetCacheConfigCacheInsertData(bool_val).ok()); ASSERT_TRUE(bool_val == cache_insert_data); + { + // #2564 + int64_t total_mem = 0, free_mem = 0; + milvus::server::CommonUtil::GetSystemMemInfo(total_mem, free_mem); + ASSERT_TRUE(config.SetCacheConfigInsertBufferSize("1GB").ok()); + int64_t cache_cpu_cache_size = total_mem / 2; + float cache_cpu_cache_threshold = 0.7; + ASSERT_TRUE(config.SetCacheConfigCpuCacheThreshold(std::to_string(cache_cpu_cache_threshold)).ok()); + ASSERT_TRUE(config.SetCacheConfigCpuCacheCapacity(std::to_string(cache_cpu_cache_size)).ok()); + ASSERT_TRUE(config.GetCacheConfigCpuCacheCapacity(int64_val).ok()); + ASSERT_TRUE(int64_val == cache_cpu_cache_size); + } + + { + int64_t total_mem = 0, free_mem = 0; + milvus::server::CommonUtil::GetSystemMemInfo(total_mem, free_mem); + ASSERT_TRUE(config.SetCacheConfigInsertBufferSize("1GB").ok()); + int64_t cache_cpu_cache_size = total_mem - 1073741824 - 1; // total_size - 1GB - 1 + ASSERT_TRUE(config.SetCacheConfigCpuCacheCapacity(std::to_string(cache_cpu_cache_size)).ok()); + ASSERT_TRUE(config.GetCacheConfigCpuCacheCapacity(int64_val).ok()); + ASSERT_TRUE(int64_val == cache_cpu_cache_size); + } + + /* engine config */ int64_t engine_use_blas_threshold = 50; ASSERT_TRUE(config.SetEngineConfigUseBlasThreshold(std::to_string(engine_use_blas_threshold)).ok()); -- GitLab