From 210f6661b4ecbbbfb49a1e86ad73a0db8be54886 Mon Sep 17 00:00:00 2001 From: Pxl Date: Sat, 29 Jul 2023 12:45:50 +0800 Subject: [PATCH] [Bug](profile) add lock on add_filter_info #22355 multiple scanner may update profile at same time --- be/src/vec/exec/scan/new_olap_scan_node.cpp | 1 + be/src/vec/exec/scan/new_olap_scan_node.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/be/src/vec/exec/scan/new_olap_scan_node.cpp b/be/src/vec/exec/scan/new_olap_scan_node.cpp index 7536dcb017..3af5bb9f89 100644 --- a/be/src/vec/exec/scan/new_olap_scan_node.cpp +++ b/be/src/vec/exec/scan/new_olap_scan_node.cpp @@ -655,6 +655,7 @@ bool NewOlapScanNode::_is_key_column(const std::string& key_name) { } void NewOlapScanNode::add_filter_info(int id, const PredicateFilterInfo& update_info) { + std::unique_lock lock(_profile_mtx); // update _filter_info[id].filtered_row += update_info.filtered_row; _filter_info[id].input_row += update_info.input_row; diff --git a/be/src/vec/exec/scan/new_olap_scan_node.h b/be/src/vec/exec/scan/new_olap_scan_node.h index fac6997c9d..8cfa08131d 100644 --- a/be/src/vec/exec/scan/new_olap_scan_node.h +++ b/be/src/vec/exec/scan/new_olap_scan_node.h @@ -190,6 +190,8 @@ private: RuntimeProfile::Counter* _filtered_segment_counter = nullptr; // total number of segment related to this scan node RuntimeProfile::Counter* _total_segment_counter = nullptr; + + std::mutex _profile_mtx; }; } // namespace doris::vectorized