This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 6f1d9812bbb [Bug](brpc) fix sync_filter_size/apply_filterv2 has wrong
closure (#39299)
6f1d9812bbb is described below
commit 6f1d9812bbb5b5e5d4714e29a00559365007e2ec
Author: Pxl <[email protected]>
AuthorDate: Tue Aug 13 19:01:22 2024 +0800
[Bug](brpc) fix sync_filter_size/apply_filterv2 has wrong closure (#39299)
pick from #39155
---
be/src/runtime/runtime_filter_mgr.cpp | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/be/src/runtime/runtime_filter_mgr.cpp
b/be/src/runtime/runtime_filter_mgr.cpp
index 77736e8407a..050f122e0a4 100644
--- a/be/src/runtime/runtime_filter_mgr.cpp
+++ b/be/src/runtime/runtime_filter_mgr.cpp
@@ -361,7 +361,7 @@ Status
RuntimeFilterMergeControllerEntity::send_filter_size(const PSendFilterSiz
closure->request_->set_filter_size(cnt_val->global_size);
stub->sync_filter_size(closure->cntl_.get(),
closure->request_.get(),
- closure->response_.get(),
brpc::DoNothing());
+ closure->response_.get(), closure.get());
closure.release();
}
}
@@ -459,7 +459,11 @@ Status RuntimeFilterMergeControllerEntity::merge(const
PMergeFilterRequest* requ
}
if (data != nullptr && len > 0) {
- request_attachment.append(data, len);
+ void* allocated = malloc(len);
+ memcpy(allocated, data, len);
+ // control the memory by doris self to avoid using brpc's
thread local storage
+ // because the memory of tls will not be released
+ request_attachment.append_user_data(allocated, len, [](void*
ptr) { free(ptr); });
has_attachment = true;
}
@@ -534,7 +538,11 @@ Status RuntimeFilterMergeControllerEntity::merge(const
PMergeFilterRequest* requ
}
if (data != nullptr && len > 0) {
- request_attachment.append(data, len);
+ void* allocated = malloc(len);
+ memcpy(allocated, data, len);
+ // control the memory by doris self to avoid using brpc's
thread local storage
+ // because the memory of tls will not be released
+ request_attachment.append_user_data(allocated, len, [](void*
ptr) { free(ptr); });
has_attachment = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]