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 1db8a2d136 [bugfix](runtimefilter)fix runtimefilter access violation when stub is nullptr (#11180) 1db8a2d136 is described below commit 1db8a2d136638b09b9867dfd8b5be457d9bcf3e0 Author: awakeljw <17329460+awake...@users.noreply.github.com> AuthorDate: Tue Aug 2 16:57:17 2022 +0800 [bugfix](runtimefilter)fix runtimefilter access violation when stub is nullptr (#11180) --- be/src/runtime/runtime_filter_mgr.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/be/src/runtime/runtime_filter_mgr.cpp b/be/src/runtime/runtime_filter_mgr.cpp index dd58feb1e2..85d0fab248 100644 --- a/be/src/runtime/runtime_filter_mgr.cpp +++ b/be/src/runtime/runtime_filter_mgr.cpp @@ -237,32 +237,33 @@ Status RuntimeFilterMergeControllerEntity::merge(const PMergeFilterRequest* requ std::vector<TRuntimeFilterTargetParams>& targets = cntVal->target_info; for (size_t i = 0; i < targets.size(); i++) { rpc_contexts.emplace_back(new PPublishFilterRpcContext); - rpc_contexts[i]->request = apply_request; - rpc_contexts[i]->request.set_filter_id(request->filter_id()); - *rpc_contexts[i]->request.mutable_query_id() = request->query_id(); + size_t cur = rpc_contexts.size() - 1; + rpc_contexts[cur]->request = apply_request; + rpc_contexts[cur]->request.set_filter_id(request->filter_id()); + *rpc_contexts[cur]->request.mutable_query_id() = request->query_id(); if (has_attachment) { - rpc_contexts[i]->cntl.request_attachment().append(request_attachment); + rpc_contexts[cur]->cntl.request_attachment().append(request_attachment); } - rpc_contexts[i]->cid = rpc_contexts[i]->cntl.call_id(); + rpc_contexts[cur]->cid = rpc_contexts[cur]->cntl.call_id(); // set fragment-id - auto request_fragment_id = rpc_contexts[i]->request.mutable_fragment_id(); - request_fragment_id->set_hi(targets[i].target_fragment_instance_id.hi); - request_fragment_id->set_lo(targets[i].target_fragment_instance_id.lo); + auto request_fragment_id = rpc_contexts[cur]->request.mutable_fragment_id(); + request_fragment_id->set_hi(targets[cur].target_fragment_instance_id.hi); + request_fragment_id->set_lo(targets[cur].target_fragment_instance_id.lo); std::shared_ptr<PBackendService_Stub> stub( ExecEnv::GetInstance()->brpc_internal_client_cache()->get_client( targets[i].target_fragment_instance_addr)); - VLOG_NOTICE << "send filter " << rpc_contexts[i]->request.filter_id() + VLOG_NOTICE << "send filter " << rpc_contexts[cur]->request.filter_id() << " to:" << targets[i].target_fragment_instance_addr.hostname << ":" << targets[i].target_fragment_instance_addr.port - << rpc_contexts[i]->request.ShortDebugString(); + << rpc_contexts[cur]->request.ShortDebugString(); if (stub == nullptr) { rpc_contexts.pop_back(); continue; } - stub->apply_filter(&rpc_contexts[i]->cntl, &rpc_contexts[i]->request, - &rpc_contexts[i]->response, brpc::DoNothing()); + stub->apply_filter(&rpc_contexts[cur]->cntl, &rpc_contexts[cur]->request, + &rpc_contexts[cur]->response, brpc::DoNothing()); } for (auto& rpc_context : rpc_contexts) { brpc::Join(rpc_context->cid); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org