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 c747714c1864e08311bc3c76e3537453615c0cae
Author: Xinyi Zou <zouxiny...@gmail.com>
AuthorDate: Fri Apr 19 14:41:22 2024 +0800

    [fix](memory) Fix ExecEnv destroy memory tracking (#33781)
    
    disable memory tracking when ExecEnv destroy.
    fix memory tracker label convert to query id
---
 be/src/runtime/memory/mem_tracker_limiter.h |  4 ++--
 be/src/runtime/thread_context.h             | 13 +++++++------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/be/src/runtime/memory/mem_tracker_limiter.h 
b/be/src/runtime/memory/mem_tracker_limiter.h
index fcb319a8d77..240170ea881 100644
--- a/be/src/runtime/memory/mem_tracker_limiter.h
+++ b/be/src/runtime/memory/mem_tracker_limiter.h
@@ -217,8 +217,8 @@ public:
 
     // only for Type::QUERY or Type::LOAD.
     static TUniqueId label_to_queryid(const std::string& label) {
-        if (label.rfind("Query#Id=", 0) != 0 && label.rfind("Load#Id=", 0) != 
0) {
-            return TUniqueId();
+        if (label.find("#Id=") == std::string::npos) {
+            return {};
         }
         auto queryid = split(label, "#Id=")[1];
         TUniqueId querytid;
diff --git a/be/src/runtime/thread_context.h b/be/src/runtime/thread_context.h
index 09721fb5d04..6920dfabe60 100644
--- a/be/src/runtime/thread_context.h
+++ b/be/src/runtime/thread_context.h
@@ -79,13 +79,14 @@
 #define SCOPED_CONSUME_MEM_TRACKER_BY_HOOK(mem_tracker) \
     auto VARNAME_LINENUM(add_mem_consumer) = 
doris::AddThreadMemTrackerConsumerByHook(mem_tracker)
 
-#define ORPHAN_TRACKER_CHECK()                                                 
\
-    DCHECK(!doris::config::enable_memory_orphan_check ||                       
\
-           doris::thread_context()->thread_mem_tracker()->label() != "Orphan") 
\
+#define ORPHAN_TRACKER_CHECK()                                                 
 \
+    DCHECK(doris::k_doris_exit || !doris::config::enable_memory_orphan_check 
|| \
+           doris::thread_context()->thread_mem_tracker()->label() != "Orphan") 
 \
             << doris::memory_orphan_check_msg
 
-#define MEMORY_ORPHAN_CHECK() \
-    DCHECK(!doris::config::enable_memory_orphan_check) << 
doris::memory_orphan_check_msg;
+#define MEMORY_ORPHAN_CHECK()                                                 \
+    DCHECK(doris::k_doris_exit || !doris::config::enable_memory_orphan_check) \
+            << doris::memory_orphan_check_msg;
 #else
 #define SCOPED_MEM_COUNT_BY_HOOK(scope_mem) (void)0
 #define SCOPED_CONSUME_MEM_TRACKER_BY_HOOK(mem_tracker) (void)0
@@ -200,7 +201,7 @@ public:
 
     void consume_memory(const int64_t size) const {
 #ifdef USE_MEM_TRACKER
-        DCHECK(!doris::config::enable_memory_orphan_check ||
+        DCHECK(doris::k_doris_exit || 
!doris::config::enable_memory_orphan_check ||
                thread_mem_tracker()->label() != "Orphan")
                 << doris::memory_orphan_check_msg;
 #endif


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

Reply via email to