liutang123 opened a new issue, #46498:
URL: https://github.com/apache/doris/issues/46498

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/doris/issues?q=is%3Aissue) 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?
   
   1. build doris be with asan.
   2. 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"
   );
   ```
   3. insert some test data in dbgr table and lo table
   4. 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?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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.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

Reply via email to