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

dataroaring 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 205849d49b6 [fix](local exchange) Fix DCHECK failure (#39586)
205849d49b6 is described below

commit 205849d49b670929d86222cde2970c7964f8586b
Author: Gabriel <gabrielleeb...@gmail.com>
AuthorDate: Wed Aug 21 17:28:11 2024 +0800

    [fix](local exchange) Fix DCHECK failure (#39586)
    
    ## Proposed changes
    
    F20240819 00:40:30.994563 9829 local_exchanger.h:171] Check failed:
    ref_count.load() == 0 (1 vs. 0)
    
    Check failure stack trace: ***
    @ 0x5564557bcca6 google::LogMessage::SendToLog()
    @ 0x5564557b96f0 google::LogMessage::Flush()
    @ 0x5564557bd4e9 google::LogMessageFatal::~LogMessageFatal()
    @ 0x556455444baa doris::pipeline::BlockWrapper::~BlockWrapper()
    @ 0x55641dff19b5 std::_Sp_counted_base<>::_M_release()
    @ 0x5564554538fa
    moodycamel::ConcurrentQueue<>::ImplicitProducer::~ImplicitProducer()
    @ 0x55645543dcb2 moodycamel::ConcurrentQueue<>::~ConcurrentQueue()
    @ 0x55645543d9d3 std::vector<>::~vector()
    @ 0x5564554337a8
    doris::pipeline::PassToOneExchanger::~PassToOneExchanger()
    @ 0x556450f0fdec std::unique_ptr<>::~unique_ptr()
    @ 0x556450ebac12
    doris::pipeline::LocalExchangeSharedState::~LocalExchangeSharedState()
    @ 0x55641dff19b5 std::_Sp_counted_base<>::_M_release()
    @ 0x556454335ddd std::_Rb_tree<>::_M_erase()
    @ 0x55645551597a doris::pipeline::PipelineTask::finalize()
    @ 0x556455549591 doris::pipeline::_close_task()
    @ 0x55645554a2b1 doris::pipeline::TaskScheduler::_do_work()
    @ 0x5564226327dc doris::ThreadPool::dispatch_thread()
    @ 0x55642260a6d8 doris::Thread::supervise_thread()
    @ 0x7f4f88d9dac3 (unknown)
    @ 0x7f4f88e2f850 (unknown)
    @ (nil) (unknown)
    
    <!--Describe your changes.-->
---
 be/src/pipeline/local_exchange/local_exchanger.cpp | 14 ++++++++++++--
 be/src/pipeline/local_exchange/local_exchanger.h   |  2 +-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/be/src/pipeline/local_exchange/local_exchanger.cpp 
b/be/src/pipeline/local_exchange/local_exchanger.cpp
index 79fbb0f8d06..be4071cef9a 100644
--- a/be/src/pipeline/local_exchange/local_exchanger.cpp
+++ b/be/src/pipeline/local_exchange/local_exchanger.cpp
@@ -290,7 +290,17 @@ void 
PassthroughExchanger::close(LocalExchangeSourceLocalState& local_state) {
     bool eos;
     _data_queue[local_state._channel_id].set_eos();
     while (_dequeue_data(local_state, wrapper, &eos, &next_block)) {
-        next_block = vectorized::Block();
+        // do nothing
+    }
+}
+
+void PassToOneExchanger::close(LocalExchangeSourceLocalState& local_state) {
+    vectorized::Block next_block;
+    BlockWrapperSPtr wrapper;
+    bool eos;
+    _data_queue[local_state._channel_id].set_eos();
+    while (_dequeue_data(local_state, wrapper, &eos, &next_block)) {
+        // do nothing
     }
 }
 
@@ -551,7 +561,7 @@ void 
AdaptivePassthroughExchanger::close(LocalExchangeSourceLocalState& local_st
     BlockWrapperSPtr wrapper;
     _data_queue[local_state._channel_id].set_eos();
     while (_dequeue_data(local_state, wrapper, &eos, &next_block)) {
-        next_block = vectorized::Block();
+        // do nothing
     }
 }
 
diff --git a/be/src/pipeline/local_exchange/local_exchanger.h 
b/be/src/pipeline/local_exchange/local_exchanger.h
index 71c388b2323..72c0a0ed3a6 100644
--- a/be/src/pipeline/local_exchange/local_exchanger.h
+++ b/be/src/pipeline/local_exchange/local_exchanger.h
@@ -279,7 +279,7 @@ public:
     Status get_block(RuntimeState* state, vectorized::Block* block, bool* eos,
                      LocalExchangeSourceLocalState& local_state) override;
     ExchangeType get_type() const override { return ExchangeType::PASS_TO_ONE; 
}
-    void close(LocalExchangeSourceLocalState& local_state) override {}
+    void close(LocalExchangeSourceLocalState& local_state) override;
 };
 
 class LocalMergeSortExchanger final : public Exchanger<BlockWrapperSPtr> {


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

Reply via email to