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]