Skip to content

Commit

Permalink
[fix](memtracker) Fix open query profile to print the complete mem li…
Browse files Browse the repository at this point in the history
…mit exceed log #12339
  • Loading branch information
xinyiZzz authored Sep 5, 2022
1 parent 38937c1 commit 05f6e1b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
12 changes: 6 additions & 6 deletions be/src/runtime/memory/mem_tracker_limiter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ bool MemTrackerLimiter::gc_memory(int64_t max_consumption) {
Status MemTrackerLimiter::try_gc_memory(int64_t bytes) {
if (UNLIKELY(gc_memory(_limit - bytes))) {
return Status::MemoryLimitExceeded(fmt::format(
"failed_alloc_size={}B, exceeded_tracker={}, limit={}B, peak_used={}B, "
"current_used={}B",
"failed_alloc_size={} B, exceeded_tracker={}, limit={} B, peak_used={} B, "
"current_used={} B",
bytes, label(), _limit, _consumption->value(), _consumption->current_value()));
}
VLOG_NOTICE << "GC succeeded, TryConsume bytes=" << bytes
Expand Down Expand Up @@ -281,8 +281,8 @@ Status MemTrackerLimiter::mem_limit_exceeded(const std::string& msg,
MemTrackerLimiter* print_log_usage_tracker = nullptr;
if (exceeded_tracker != nullptr) {
detail += fmt::format(
"failed_alloc_size={}B, exceeded_tracker={}, limit={}B, peak_used={}B, "
"current_used={}B>, executing_msg:<{}>",
"failed_alloc_size={} B, exceeded_tracker={}, limit={} B, peak_used={} B, "
"current_used={} B>, executing_msg:<{}>",
PrettyPrinter::print(failed_allocation_size, TUnit::BYTES),
exceeded_tracker->label(), exceeded_tracker->limit(),
exceeded_tracker->peak_consumption(), exceeded_tracker->consumption(), msg);
Expand All @@ -292,8 +292,8 @@ Status MemTrackerLimiter::mem_limit_exceeded(const std::string& msg,
} else if (max_consumption_tracker != nullptr) {
// must after check_sys_mem_info false
detail += fmt::format(
"failed_alloc_size={}B, max_consumption_tracker={}, limit={}B, peak_used={}B, "
"current_used={}B>, executing_msg:<{}>",
"failed_alloc_size={} B, max_consumption_tracker={}, limit={} B, peak_used={} B, "
"current_used={} B>, executing_msg:<{}>",
PrettyPrinter::print(failed_allocation_size, TUnit::BYTES),
max_consumption_tracker->label(), max_consumption_tracker->limit(),
max_consumption_tracker->peak_consumption(), max_consumption_tracker->consumption(),
Expand Down
4 changes: 2 additions & 2 deletions be/src/runtime/memory/mem_tracker_limiter.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class MemTrackerLimiter final : public MemTracker {
// for fast, expect MemInfo::initialized() to be true.
if (PerfCounters::get_vm_rss() + bytes >= MemInfo::mem_limit()) {
auto st = Status::MemoryLimitExceeded(
"process memory used {} exceed limit {}, failed_alloc_size={}",
"process memory used {} B, exceed limit {} B, failed_alloc_size={} B",
PerfCounters::get_vm_rss(), MemInfo::mem_limit(), bytes);
ExecEnv::GetInstance()->process_mem_tracker_raw()->print_log_usage(st.get_error_msg());
return st;
Expand Down Expand Up @@ -229,7 +229,7 @@ class MemTrackerLimiter final : public MemTracker {
// The number of child trackers that have been added.
std::atomic_size_t _had_child_count = 0;

bool _print_log_usage = true;
bool _print_log_usage = false;

// Lock to protect gc_memory(). This prevents many GCs from occurring at once.
std::mutex _gc_lock;
Expand Down
5 changes: 5 additions & 0 deletions be/src/runtime/runtime_state.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,11 @@ Status RuntimeState::init_mem_trackers(const TUniqueId& query_id) {
-1, "RuntimeState:instance:" + print_id(_fragment_instance_id), _query_mem_tracker,
&_profile);

if (_query_options.is_report_success) {
_query_mem_tracker->enable_print_log_usage();
_instance_mem_tracker->enable_print_log_usage();
}

return Status::OK();
}

Expand Down

0 comments on commit 05f6e1b

Please sign in to comment.