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

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


The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
     new 3f5f19fcbd [fix](memtracker) Fix VDataStreamRecvr runtime state null 
pointer (#15451)
3f5f19fcbd is described below

commit 3f5f19fcbd4f781b6d87f032fcb96aac01d5ddd2
Author: Xinyi Zou <[email protected]>
AuthorDate: Thu Dec 29 09:36:03 2022 +0800

    [fix](memtracker) Fix VDataStreamRecvr runtime state null pointer (#15451)
---
 be/src/util/mem_info.cpp                  | 2 +-
 be/src/vec/runtime/vdata_stream_recvr.cpp | 7 +++----
 be/src/vec/runtime/vdata_stream_recvr.h   | 3 ++-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/be/src/util/mem_info.cpp b/be/src/util/mem_info.cpp
index 55500feea7..cccf77c060 100644
--- a/be/src/util/mem_info.cpp
+++ b/be/src/util/mem_info.cpp
@@ -106,7 +106,7 @@ void MemInfo::process_minor_gc() {
     StoragePageCache::instance()->prune(segment_v2::DATA_PAGE);
     if (config::enable_query_memroy_overcommit) {
         freed_mem +=
-                
MemTrackerLimiter::free_top_overcommit_query(_s_process_full_gc_size - 
freed_mem);
+                
MemTrackerLimiter::free_top_overcommit_query(_s_process_minor_gc_size - 
freed_mem);
     }
 }
 
diff --git a/be/src/vec/runtime/vdata_stream_recvr.cpp 
b/be/src/vec/runtime/vdata_stream_recvr.cpp
index a9c741969a..4c6c3a57bc 100644
--- a/be/src/vec/runtime/vdata_stream_recvr.cpp
+++ b/be/src/vec/runtime/vdata_stream_recvr.cpp
@@ -257,7 +257,8 @@ VDataStreamRecvr::VDataStreamRecvr(
         std::shared_ptr<QueryStatisticsRecvr> sub_plan_query_statistics_recvr)
         : _mgr(stream_mgr),
 #ifdef USE_MEM_TRACKER
-          _state(state),
+          _query_mem_tracker(state->query_mem_tracker()),
+          _query_id(state->query_id()),
 #endif
           _fragment_instance_id(fragment_instance_id),
           _dest_node_id(dest_node_id),
@@ -319,9 +320,7 @@ Status VDataStreamRecvr::create_merger(const 
std::vector<VExprContext*>& orderin
 
 void VDataStreamRecvr::add_block(const PBlock& pblock, int sender_id, int 
be_number,
                                  int64_t packet_seq, 
::google::protobuf::Closure** done) {
-    SCOPED_ATTACH_TASK(_state->query_mem_tracker(), 
print_id(_state->query_id()),
-                       _fragment_instance_id);
-    SCOPED_CONSUME_MEM_TRACKER(_mem_tracker.get());
+    SCOPED_ATTACH_TASK(_query_mem_tracker, print_id(_query_id), 
_fragment_instance_id);
     int use_sender_id = _is_merging ? sender_id : 0;
     _sender_queues[use_sender_id]->add_block(pblock, be_number, packet_seq, 
done);
 }
diff --git a/be/src/vec/runtime/vdata_stream_recvr.h 
b/be/src/vec/runtime/vdata_stream_recvr.h
index 6d38ecb955..22a615ebf1 100644
--- a/be/src/vec/runtime/vdata_stream_recvr.h
+++ b/be/src/vec/runtime/vdata_stream_recvr.h
@@ -99,7 +99,8 @@ private:
     VDataStreamMgr* _mgr;
 
 #ifdef USE_MEM_TRACKER
-    RuntimeState* _state;
+    std::shared_ptr<MemTrackerLimiter> _query_mem_tracker;
+    TUniqueId _query_id;
 #endif
 
     // Fragment and node id of the destination exchange node this receiver is 
used by.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to