-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed
Description
Search before asking
- I had searched in the issues and found no similar issues.
Version
2.1.7
What's Wrong?
When execute nested loop join in pipelineX and old planner, an DCHECK error occur.
be.INFO
F20250106 17:17:31.337930 558416 block.cpp:731] Check failed: d.column->use_count() == 1 (2 vs. 1) 0x6180000e0a20 block use count: , [
channel_id, 2], [__DORIS_DELETE_SIGN__, 1], [channel_id, 1], [event_date, 1], [__DORIS_DELETE_SIGN__, 1]
be.out
8# doris::vectorized::Block::clear_column_data(int) in /usr/local/service/doris/lib/be/doris_be
9# doris::pipeline::NestedLoopJoinProbeOperatorX::pull(doris::RuntimeState*, doris::vectorized::Block*, bool*) const at /root/tc/be/sr
c/pipeline/exec/nested_loop_join_probe_operator.cpp:547
10# doris::pipeline::StatefulOperatorX<doris::pipeline::NestedLoopJoinProbeLocalState>::get_block(doris::RuntimeState*, doris::vectoriz
ed::Block*, bool*) at /root/tc/be/src/pipeline/pipeline_x/operator.cpp:571
11# doris::pipeline::OperatorXBase::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /root/tc/be/src
/pipeline/pipeline_x/operator.cpp:292
12# doris::pipeline::PipelineXTask::execute(bool*) at /root/tc/be/src/pipeline/pipeline_x/pipeline_x_task.cpp:342
13# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /root/tc/be/src/pipeline/task_scheduler.cpp:347
14# doris::pipeline::TaskScheduler::start()::$_0::operator()() const at /root/tc/be/src/pipeline/task_scheduler.cpp:218
15# void std::__invoke_impl<void, doris::pipeline::TaskScheduler::start()::$_0&>(std::__invoke_other, doris::pipeline::TaskScheduler::s
tart()::$_0&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
16# std::enable_if<is_invocable_r_v<void, doris::pipeline::TaskScheduler::start()::$_0&>, void>::type std::__invoke_r<void, doris::pipe
line::TaskScheduler::start()::$_0&>(doris::pipeline::TaskScheduler::start()::$_0&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-li
nux-gnu/11/../../../../include/c++/11/bits/invoke.h:117
17# std::_Function_handler<void (), doris::pipeline::TaskScheduler::start()::$_0>::_M_invoke(std::_Any_data const&) at /var/local/ldb-t
oolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
18# std::function<void ()>::operator()() const at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/1
1/bits/std_function.h:560
19# doris::FunctionRunnable::run() at /root/tc/be/src/util/threadpool.cpp:48
20# doris::ThreadPool::dispatch_thread() at /root/tc/be/src/util/threadpool.cpp:544
21# void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadP
ool::*&)(), doris::ThreadPool*&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.
h:74
22# std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris
::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../
../../../include/c++/11/bits/invoke.h:96
23# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at
/var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420
24# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() at /var/local/ldb-toolchain/bin/../lib/gcc
/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503
25# void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void
(doris::ThreadPool::*(doris::ThreadPool*))()>&) at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/
11/bits/invoke.h:61
26# std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<
void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) a
t /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:117
27# std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) a
t /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291
28# std::function<void ()>::operator()() const at /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/1
1/bits/std_function.h:560
29# doris::Thread::supervise_thread(void*) at /root/tc/be/src/util/thread.cpp:498
30# start_thread in /lib64/libpthread.so.0
31# __clone in /lib64/libc.so.6
What You Expected?
No DCHECK occur.
How to Reproduce?
- build doris be with asan.
- create table
CREATE TABLE `dbgr` (
`event_date` int NULL DEFAULT "0" COMMENT '天',
`c_id` int NULL DEFAULT "0" COMMENT '渠道ID',
INDEX event_date (`event_date`) USING INVERTED
) ENGINE=OLAP
UNIQUE KEY(`event_date`)
COMMENT ''
PARTITION BY RANGE(`event_date`)
(PARTITION p_min VALUES [("-2147483648"), ("20220500")),
PARTITION p_202206 VALUES [("20220500"), ("20220600")),
PARTITION p_202207 VALUES [("20220600"), ("20220700")),
PARTITION p_202413 VALUES [("20241200"), ("20250100")),
PARTITION p_max VALUES [("20270200"), (MAXVALUE)))
DISTRIBUTED BY HASH(`event_date`) BUCKETS 2
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"min_load_replica_num" = "-1",
"is_being_synced" = "false",
"storage_medium" = "hdd",
"storage_format" = "V2",
"inverted_index_storage_format" = "V1",
"enable_unique_key_merge_on_write" = "true",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false",
"group_commit_interval_ms" = "10000",
"group_commit_data_bytes" = "134217728",
"enable_mow_light_delete" = "false"
);
CREATE TABLE `lo` (
`id` bigint NULL,
`event_date` int NULL COMMENT '',
`c_id` int NULL COMMENT ''
) ENGINE=OLAP
UNIQUE KEY(`id`, `event_date`)
COMMENT ''
PARTITION BY RANGE(`event_date`)
(PARTITION p_202206 VALUES [("20220500"), ("20220600")),
PARTITION p_202207 VALUES [("20220600"), ("20220700")),
PARTITION p_202702 VALUES [("20270100"), ("20270200")))
DISTRIBUTED BY HASH(`event_date`) BUCKETS 2
PROPERTIES (
"replication_allocation" = "tag.location.default: 2",
"min_load_replica_num" = "-1",
"is_being_synced" = "false",
"storage_medium" = "hdd",
"storage_format" = "V2",
"inverted_index_storage_format" = "V1",
"enable_unique_key_merge_on_write" = "true",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false",
"group_commit_interval_ms" = "10000",
"group_commit_data_bytes" = "134217728",
"enable_mow_light_delete" = "false"
);
- insert some test data in dbgr table and lo table
- execute follow query:
set experimental_enable_pipeline_x_engine = true;
set experimental_enable_pipeline_engine = true;
set experimental_enable_nereids_planner = false;
select b.c_id from dbgr as b left join (select c.c_id from lo where event_date between 20220500 and 20220600 limit 100 )c on c.c_id = 1 LIMIT 0, 200;
Anything Else?
No response
Are you willing to submit PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels