From 6b52973b0491621fa1860b7b1766aadbfa0fc2b0 Mon Sep 17 00:00:00 2001 From: groot Date: Mon, 2 Dec 2019 19:51:33 +0800 Subject: [PATCH] #654 Random crash when frequently insert vector one by one --- CHANGELOG.md | 1 + core/src/db/insert/MemManagerImpl.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e3284f9..1e978754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,7 @@ Please mark all change in change log and use the ticket from JIRA. - \#606 - No log generated during building index with CPU - \#631 - FAISS isn't compiled with O3 option - \#649 - Typo "partiton" should be "partition" +- \#654 - Random crash when frequently insert vector one by one ## Feature - \#12 - Pure CPU version for Milvus diff --git a/core/src/db/insert/MemManagerImpl.cpp b/core/src/db/insert/MemManagerImpl.cpp index 69c3397e..c7ca3b3c 100644 --- a/core/src/db/insert/MemManagerImpl.cpp +++ b/core/src/db/insert/MemManagerImpl.cpp @@ -116,6 +116,7 @@ MemManagerImpl::EraseMemVector(const std::string& table_id) { size_t MemManagerImpl::GetCurrentMutableMem() { size_t total_mem = 0; + std::unique_lock lock(mutex_); for (auto& kv : mem_id_map_) { auto memTable = kv.second; total_mem += memTable->GetCurrentMem(); @@ -126,6 +127,7 @@ MemManagerImpl::GetCurrentMutableMem() { size_t MemManagerImpl::GetCurrentImmutableMem() { size_t total_mem = 0; + std::unique_lock lock(serialization_mtx_); for (auto& mem_table : immu_mem_list_) { total_mem += mem_table->GetCurrentMem(); } -- GitLab