From f559baab29a596c7a4a8136c51d43fcbeff9f7f9 Mon Sep 17 00:00:00 2001 From: wuxianrong Date: Wed, 19 Mar 2025 21:05:59 +0800 Subject: [PATCH 1/2] Resolve core issues at runtime --- include/pika_cmd_table_manager.h | 1 - src/pika_cmd_table_manager.cc | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/include/pika_cmd_table_manager.h b/include/pika_cmd_table_manager.h index 85c827a662..7966f0814f 100644 --- a/include/pika_cmd_table_manager.h +++ b/include/pika_cmd_table_manager.h @@ -73,7 +73,6 @@ class PikaCmdTableManager { */ std::unordered_map cmdstat_map_; std::unordered_map slow_command_count_; - std::mutex command_mutex_; std::shared_mutex histograms_mutex_; std::shared_mutex slow_command_mutex_; std::shared_ptr prometheus_registry_; diff --git a/src/pika_cmd_table_manager.cc b/src/pika_cmd_table_manager.cc index 7559bc7c6d..cb9545b040 100644 --- a/src/pika_cmd_table_manager.cc +++ b/src/pika_cmd_table_manager.cc @@ -15,9 +15,15 @@ extern std::unique_ptr g_pika_conf; void PikaCmdTableManager::ResetCommandCount() { - std::lock_guard lock(command_mutex_); - slow_command_count_.clear(); - InitHistograms(); + { + std::unique_lock write_lock(slow_command_mutex_); + slow_command_count_.clear(); + } + + { + std::unique_lock write_lock(histograms_mutex_); + InitHistograms(); + } } void PikaCmdTableManager::InitHistograms() { From f11db06014f4fcc4840a5be50ca75e076c4f369f Mon Sep 17 00:00:00 2001 From: wuxianrong Date: Wed, 19 Mar 2025 21:45:00 +0800 Subject: [PATCH 2/2] fix core --- src/pika_cmd_table_manager.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pika_cmd_table_manager.cc b/src/pika_cmd_table_manager.cc index cb9545b040..4be24fa059 100644 --- a/src/pika_cmd_table_manager.cc +++ b/src/pika_cmd_table_manager.cc @@ -103,6 +103,7 @@ prometheus::Histogram& PikaCmdTableManager::GetHistogram(const std::string& opt) } prometheus::Family* PikaCmdTableManager::GetHistograms() { + std::shared_lock read_lock(histograms_mutex_); return histogram_family_; }