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