From ac8fbdd53cedf50fe6c17de20cd4c26801eb222a Mon Sep 17 00:00:00 2001 From: Gabriel Date: Fri, 13 Oct 2023 16:57:34 +0800 Subject: [PATCH] [pipelineX](fix) Fix use-after-free in shuffling (#25409) --- be/src/pipeline/exec/exchange_sink_buffer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/be/src/pipeline/exec/exchange_sink_buffer.cpp b/be/src/pipeline/exec/exchange_sink_buffer.cpp index 22b270c3b8..31a8a1852a 100644 --- a/be/src/pipeline/exec/exchange_sink_buffer.cpp +++ b/be/src/pipeline/exec/exchange_sink_buffer.cpp @@ -364,11 +364,11 @@ void ExchangeSinkBuffer::_ended(InstanceLoId id) { std::unique_lock lock(*_instance_to_package_queue_mutex[id]); if (!_rpc_channel_is_idle[id]) { _busy_channels--; + _rpc_channel_is_idle[id] = true; if (_finish_dependency && _busy_channels == 0) { _finish_dependency->set_ready_to_finish(); } } - _rpc_channel_is_idle[id] = true; } template @@ -384,11 +384,11 @@ void ExchangeSinkBuffer::_set_receiver_eof(InstanceLoId id) { _instance_to_receiver_eof[id] = true; if (!_rpc_channel_is_idle[id]) { _busy_channels--; + _rpc_channel_is_idle[id] = true; if (_finish_dependency && _busy_channels == 0) { _finish_dependency->set_ready_to_finish(); } } - _rpc_channel_is_idle[id] = true; } template