This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 69fc8cf06d2ec16cb43ba297156ea058a6bd0ba3
Author: Xinyi Zou <zouxiny...@gmail.com>
AuthorDate: Thu Apr 11 11:22:39 2024 +0800

    [branch-2.1](memory) Fix rowid storage reader memory tracker (#33521)
    
    fix:
    F20240411 10:26:06.693233 1368925 thread_context.h:293] 
__builtin_unreachable, If you crash here, it means that SCOPED_ATTACH_TASK and 
SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER are not used correctly. starting 
position of each thread is expected to use SCOPED_ATTACH_TASK to bind a 
MemTrackerLimiter belonging to Query/Load/Compaction/Other Tasks, otherwise 
memory alloc using Doris Allocator in the thread will crash. If you want to 
switch MemTrackerLimiter during thread execution, please [...]
    *** Check failure stack trace: ***
        @     0x562d9b5aa6a6  google::LogMessage::SendToLog()
        @     0x562d9b5a70f0  google::LogMessage::Flush()
        @     0x562d9b5aaee9  google::LogMessageFatal::~LogMessageFatal()
        @     0x562d7ebd1b7e  doris::thread_context()
        @     0x562d7ec203b8  Allocator<>::sys_memory_check()
        @     0x562d7ec255a3  Allocator<>::memory_check()
        @     0x562d7ec274a1  Allocator<>::alloc_impl()
        @     0x562d7ec27227  Allocator<>::alloc()
        @     0x562d67a12207  doris::vectorized::PODArrayBase<>::alloc<>()
        @     0x562d67a11fde  doris::vectorized::PODArrayBase<>::realloc<>()
        @     0x562d67a11e26  doris::vectorized::PODArrayBase<>::reserve<>()
        @     0x562d77331ee3  doris::vectorized::ColumnVector<>::reserve()
        @     0x562d7e64328e  doris::vectorized::ColumnNullable::reserve()
        @     0x562d7ec79a84  doris::vectorized::Block::Block()
        @     0x562d6b86b81b  doris::PInternalServiceImpl::_multi_get()
        @     0x562d6b8a4a07  
doris::PInternalServiceImpl::multiget_data()::$_0::operator()()
---
 be/src/service/internal_service.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/be/src/service/internal_service.cpp 
b/be/src/service/internal_service.cpp
index ef0521b5219..9eeeca68db6 100644
--- a/be/src/service/internal_service.cpp
+++ b/be/src/service/internal_service.cpp
@@ -2045,6 +2045,7 @@ void 
PInternalServiceImpl::multiget_data(google::protobuf::RpcController* contro
         watch.start();
         brpc::ClosureGuard closure_guard(done);
         response->mutable_status()->set_status_code(0);
+        
SCOPED_ATTACH_TASK(ExecEnv::GetInstance()->rowid_storage_reader_tracker());
         Status st = _multi_get(*request, response);
         st.to_protobuf(response->mutable_status());
         LOG(INFO) << "multiget_data finished, cost(us):" << 
watch.elapsed_time() / 1000;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to