From 0f4a39f82dcdf9bb785022a6537a526ecd184dac Mon Sep 17 00:00:00 2001 From: EmmyMiao87 <522274284@qq.com> Date: Thu, 27 May 2021 22:04:17 +0800 Subject: [PATCH] [LOG]Hiding stack info of memory exceed in the log (#5896) If query is memory exceed, a detail info where memory exceed is required. However it is not necessary to return the entire query stack to the end user. The query stack only needs to be printed in the be log. --- be/src/runtime/mem_tracker.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/be/src/runtime/mem_tracker.cpp b/be/src/runtime/mem_tracker.cpp index bdb803054c..9177e72c46 100644 --- a/be/src/runtime/mem_tracker.cpp +++ b/be/src/runtime/mem_tracker.cpp @@ -499,8 +499,9 @@ Status MemTracker::MemLimitExceeded(MemTracker* mtracker, RuntimeState* state, const int64_t process_capacity = process_tracker->SpareCapacity(MemLimit::HARD); ss << "Memory left in process limit: " << PrettyPrinter::print(process_capacity, TUnit::BYTES) << std::endl; + Status status = Status::MemoryLimitExceeded(ss.str()); - // Always log the query tracker (if available). + // only print the query tracker in be log(if available). MemTracker* query_tracker = nullptr; if (mtracker != nullptr) { query_tracker = mtracker->GetQueryMemTracker(); @@ -522,9 +523,8 @@ Status MemTracker::MemLimitExceeded(MemTracker* mtracker, RuntimeState* state, // dumping the process tracker to only two layers. ss << process_tracker->LogUsage(PROCESS_MEMTRACKER_LIMITED_DEPTH); } - - Status status = Status::MemoryLimitExceeded(ss.str()); - if (state != nullptr) state->log_error(status.to_string()); + if (state != nullptr) state->log_error(ss.str()); + LOG(WARNING) << ss.str(); return status; }