You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2023/01/14 10:37:25 UTC

[doris] branch master updated: [Bug](pipeline) Fix BE crash caused by pipeline (#15890)

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 84d6938a73 [Bug](pipeline) Fix BE crash caused by pipeline (#15890)
84d6938a73 is described below

commit 84d6938a7392738363f6023d2296c5adc65fd8a0
Author: Gabriel <ga...@gmail.com>
AuthorDate: Sat Jan 14 18:37:19 2023 +0800

    [Bug](pipeline) Fix BE crash caused by pipeline (#15890)
    
    * [Bug](pipeline) Fix BE crash caused by pipeline
    
    * update
---
 be/src/pipeline/exec/exchange_sink_buffer.cpp | 6 ++++--
 be/src/pipeline/exec/exchange_sink_buffer.h   | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/be/src/pipeline/exec/exchange_sink_buffer.cpp b/be/src/pipeline/exec/exchange_sink_buffer.cpp
index 9f6fbdf891..aedeeec19b 100644
--- a/be/src/pipeline/exec/exchange_sink_buffer.cpp
+++ b/be/src/pipeline/exec/exchange_sink_buffer.cpp
@@ -89,8 +89,10 @@ void ExchangeSinkBuffer::close() {
         if (pair.second) {
             pair.second->release_finst_id();
             pair.second->release_query_id();
+            delete pair.second;
         }
     }
+    _instance_to_request.clear();
 }
 
 bool ExchangeSinkBuffer::can_write() const {
@@ -168,7 +170,7 @@ Status ExchangeSinkBuffer::_send_rpc(InstanceLoId id) {
         _construct_request(id);
     }
 
-    auto& brpc_request = _instance_to_request[id];
+    auto brpc_request = _instance_to_request[id];
     brpc_request->set_eos(request.eos);
     brpc_request->set_packet_seq(_instance_to_seq[id]++);
     if (request.block) {
@@ -210,7 +212,7 @@ Status ExchangeSinkBuffer::_send_rpc(InstanceLoId id) {
 }
 
 void ExchangeSinkBuffer::_construct_request(InstanceLoId id) {
-    _instance_to_request[id] = std::make_unique<PTransmitDataParams>();
+    _instance_to_request[id] = new PTransmitDataParams();
     _instance_to_request[id]->set_allocated_finst_id(&_instance_to_finst_id[id]);
     _instance_to_request[id]->set_allocated_query_id(&_query_id);
 
diff --git a/be/src/pipeline/exec/exchange_sink_buffer.h b/be/src/pipeline/exec/exchange_sink_buffer.h
index 95e2bdfbcb..eff77c05bb 100644
--- a/be/src/pipeline/exec/exchange_sink_buffer.h
+++ b/be/src/pipeline/exec/exchange_sink_buffer.h
@@ -62,7 +62,7 @@ private:
     using PackageSeq = int64_t;
     // must init zero
     phmap::flat_hash_map<InstanceLoId, PackageSeq> _instance_to_seq;
-    phmap::flat_hash_map<InstanceLoId, std::unique_ptr<PTransmitDataParams>> _instance_to_request;
+    phmap::flat_hash_map<InstanceLoId, PTransmitDataParams*> _instance_to_request;
     phmap::flat_hash_map<InstanceLoId, PUniqueId> _instance_to_finst_id;
     phmap::flat_hash_map<InstanceLoId, bool> _instance_to_sending_by_pipeline;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org