BiteTheDDDDt commented on code in PR #45207: URL: https://github.com/apache/doris/pull/45207#discussion_r1883617408
########## be/src/pipeline/exec/hashjoin_build_sink.cpp: ########## @@ -135,26 +135,17 @@ Status HashJoinBuildSinkLocalState::close(RuntimeState* state, Status exec_statu } }}; - if (!_runtime_filter_slots || _runtime_filters.empty() || state->is_cancelled()) { + if (!_runtime_filter_slots || _runtime_filters.empty() || state->is_cancelled() || + !p.get_local_state(state)._eos) { return Base::close(state, exec_status); } try { - if (state->get_task()->wake_up_by_downstream()) { - if (_should_build_hash_table) { - // partitial ignore rf to make global rf work - RETURN_IF_ERROR( - _runtime_filter_slots->send_filter_size(state, 0, _finish_dependency)); - RETURN_IF_ERROR(_runtime_filter_slots->ignore_all_filters()); - } else { - // do not publish filter coz local rf not inited and useless - return Base::close(state, exec_status); - } + if (state->get_task()->wake_up_early()) { Review Comment: 例如build shared hash table的broad cast场景,非build shared hash table的instance自己先提前close了,此时它虽然在sink中有eos,但是没获取到shared context,不能正常的做rf publish,需要进到这个分支里ignore所有filter再publish。 wake_up_early意味着rf对应的部分数据已经不需要了,而且此时也不一定能正确处理构造(比如没有sync filter size/没有获取到shared context),所以需要ignore all filters -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org