Skip to content

Commit 1e66a7a

Browse files
authored
[BugFix] fix thread local scope not work in pk table (StarRocks#48858)
Signed-off-by: luohaha <[email protected]>
1 parent b30d08d commit 1e66a7a

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

be/src/storage/tablet_updates.cpp

+3-7
Original file line numberDiff line numberDiff line change
@@ -912,13 +912,9 @@ DEFINE_FAIL_POINT(tablet_apply_load_compaction_state_failed);
912912
DEFINE_FAIL_POINT(tablet_apply_load_segments_failed);
913913

914914
void TabletUpdates::do_apply() {
915-
if (config::enable_pk_strict_memcheck) {
916-
SCOPED_THREAD_LOCAL_CHECK_MEM_LIMIT_SETTER(true);
917-
SCOPED_THREAD_LOCAL_SINGLETON_CHECK_MEM_TRACKER_SETTER(
918-
StorageEngine::instance()->update_manager()->mem_tracker());
919-
} else {
920-
SCOPED_THREAD_LOCAL_CHECK_MEM_LIMIT_SETTER(false);
921-
}
915+
SCOPED_THREAD_LOCAL_CHECK_MEM_LIMIT_SETTER(config::enable_pk_strict_memcheck);
916+
SCOPED_THREAD_LOCAL_SINGLETON_CHECK_MEM_TRACKER_SETTER(
917+
config::enable_pk_strict_memcheck ? StorageEngine::instance()->update_manager()->mem_tracker() : nullptr);
922918
// only 1 thread at max is running this method
923919
bool first = true;
924920
while (!_apply_stopped) {

be/src/storage/update_manager.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -494,10 +494,8 @@ Status UpdateManager::set_cached_del_vec(const TabletSegmentId& tsid, const DelV
494494
}
495495

496496
Status UpdateManager::on_rowset_finished(Tablet* tablet, Rowset* rowset) {
497-
if (config::enable_pk_strict_memcheck) {
498-
SCOPED_THREAD_LOCAL_CHECK_MEM_LIMIT_SETTER(true);
499-
SCOPED_THREAD_LOCAL_SINGLETON_CHECK_MEM_TRACKER_SETTER(mem_tracker());
500-
}
497+
SCOPED_THREAD_LOCAL_MEM_SETTER(GlobalEnv::GetInstance()->process_mem_tracker(), config::enable_pk_strict_memcheck);
498+
SCOPED_THREAD_LOCAL_SINGLETON_CHECK_MEM_TRACKER_SETTER(config::enable_pk_strict_memcheck ? mem_tracker() : nullptr);
501499
if (!rowset->has_data_files() || tablet->tablet_state() == TABLET_NOTREADY) {
502500
// if rowset is empty or tablet is in schemachange, we can skip preparing updatestates and pre-loading primary index
503501
return Status::OK();

0 commit comments

Comments
 (0)