From aacc3bb993f5b2dda7399c5cc9a2c991c2a1222f Mon Sep 17 00:00:00 2001 From: Pxl Date: Tue, 28 May 2024 18:12:14 +0800 Subject: [PATCH] =?UTF-8?q?[Bug](runtime-filter)=20do=20not=20process=20rf?= =?UTF-8?q?=20on=20HashJoinBuildSinkLocalState::close=20when=20query=20ca?= =?UTF-8?q?=E2=80=A6=20(#35487)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit do not process rf on HashJoinBuildSinkLocalState::close when query ```cpp *** Query id: ee97f0c64a76436b-babc251c7d6702fb *** *** is nereids: 1 *** *** tablet id: 0 *** *** Aborted at 1716780426 (unix time) try "date -d @1716780426" if you are using GNU date *** *** Current BE git commitID: 813074b *** *** SIGSEGV address not mapped to object (@0x0) received by PID 12924 (TID 15847 OR 0x7efbe5aa5700) from PID 0; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /root/doris/be/src/common/signal_handler.h:421 1# PosixSignals::chained_handler(int, siginfo_t*, void*) [clone .part.0] in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so 2# JVM_handle_linux_signal in /usr/lib/jvm/java-17-openjdk-amd64/lib/server/libjvm.so 3# 0x00007F064FF1C090 in /lib/x86_64-linux-gnu/libc.so.6 4# doris::BloomFilterFuncBase::merge(doris::BloomFilterFuncBase*) at /root/doris/be/src/exprs/bloom_filter_func.h:169 5# doris::RuntimePredicateWrapper::merge(doris::RuntimePredicateWrapper const*) at /root/doris/be/src/exprs/runtime_filter.cpp:507 6# doris::IRuntimeFilter::merge_from(doris::RuntimePredicateWrapper const*) at /root/doris/be/src/exprs/runtime_filter.cpp:1497 7# doris::IRuntimeFilter::publish(bool)::$_2::operator()() const in /home/work/unlimit_teamcity/TeamCity/Agents/20240527104837agent_172.16.0.93_1/work/60183217f6ee2a9c/output/be/lib/doris_be 8# doris::IRuntimeFilter::publish(bool) at /root/doris/be/src/exprs/runtime_filter.cpp:1015 9# doris::VRuntimeFilterSlots::publish(bool) at /root/doris/be/src/exprs/runtime_filter_slots.h:137 10# doris::pipeline::HashJoinBuildSinkLocalState::close(doris::RuntimeState*, doris::Status) in /home/work/unlimit_teamcity/TeamCity/Agents/20240527104837agent_172.16.0.93_1/work/60183217f6ee2a9c/output/be/lib/doris_be 11# doris::pipeline::DataSinkOperatorXBase::close(doris::RuntimeState*, doris::Status) at /root/doris/be/src/pipeline/exec/operator.h:491 12# doris::pipeline::PipelineTask::close(doris::Status) at /root/doris/be/src/pipeline/pipeline_task.cpp:436 13# doris::pipeline::_close_task(doris::pipeline::PipelineTask*, doris::Status) at /root/doris/be/src/pipeline/task_scheduler.cpp:88 14# doris::pipeline::TaskScheduler::_do_work(unsigned long) in /home/work/unlimit_teamcity/TeamCity/Agents/20240527104837agent_172.16.0.93_1/work/60183217f6ee2a9c/output/be/lib/doris_be 15# doris::ThreadPool::dispatch_thread() at /root/doris/be/src/util/threadpool.cpp:551 16# doris::Thread::supervise_thread(void*) at /root/doris/be/src/util/thread.cpp:499 17# start_thread at /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:478 18# __clone at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97 ``` --- be/src/pipeline/exec/hashjoin_build_sink.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/src/pipeline/exec/hashjoin_build_sink.cpp b/be/src/pipeline/exec/hashjoin_build_sink.cpp index 667457e8f7..56480096e3 100644 --- a/be/src/pipeline/exec/hashjoin_build_sink.cpp +++ b/be/src/pipeline/exec/hashjoin_build_sink.cpp @@ -130,7 +130,7 @@ Status HashJoinBuildSinkLocalState::close(RuntimeState* state, Status exec_statu } }}; - if (!_runtime_filter_slots || _runtime_filters.empty()) { + if (!_runtime_filter_slots || _runtime_filters.empty() || state->is_cancelled()) { return Status::OK(); } auto* block = _shared_state->build_block.get();