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