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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4497da30c16 [fix asan core](memoryleak) should deconstruct filter 
entity in scope of query context (#38857)
4497da30c16 is described below

commit 4497da30c1609b13cd5a251f462a3c5cc93ad90e
Author: yiguolei <[email protected]>
AuthorDate: Mon Aug 5 14:33:17 2024 +0800

    [fix asan core](memoryleak) should deconstruct filter entity in scope of 
query context (#38857)
    
    ## Proposed changes
    
    Merge controller operation may create new memory and save in
    controller's object pool. So that should deconstruct the shared ptr in
    scope of query context to avoid asan check core.
    <!--Describe your changes.-->
    
    Co-authored-by: yiguolei <[email protected]>
---
 be/src/runtime/fragment_mgr.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/be/src/runtime/fragment_mgr.cpp b/be/src/runtime/fragment_mgr.cpp
index 057dca4a2ee..16305a8e915 100644
--- a/be/src/runtime/fragment_mgr.cpp
+++ b/be/src/runtime/fragment_mgr.cpp
@@ -1148,8 +1148,6 @@ Status FragmentMgr::sync_filter_size(const 
PSyncFilterSizeRequest* request) {
 Status FragmentMgr::merge_filter(const PMergeFilterRequest* request,
                                  butil::IOBufAsZeroCopyInputStream* 
attach_data) {
     UniqueId queryid = request->query_id();
-    std::shared_ptr<RuntimeFilterMergeControllerEntity> filter_controller;
-    RETURN_IF_ERROR(_runtimefilter_controller.acquire(queryid, 
&filter_controller));
 
     std::shared_ptr<QueryContext> query_ctx;
     {
@@ -1165,6 +1163,8 @@ Status FragmentMgr::merge_filter(const 
PMergeFilterRequest* request,
         }
     }
     SCOPED_ATTACH_TASK(query_ctx.get());
+    std::shared_ptr<RuntimeFilterMergeControllerEntity> filter_controller;
+    RETURN_IF_ERROR(_runtimefilter_controller.acquire(queryid, 
&filter_controller));
     auto merge_status = filter_controller->merge(request, attach_data);
     return merge_status;
 }


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

Reply via email to