Skip to content

Conversation

@github-actions
Copy link
Contributor

Cherry-picked from #56309

…dicate (#56309)

### What problem does this PR solve?

```
*** SIGSEGV address not mapped to object (@0x0) received by PID 612357 (TID 618949 OR 0x7bf276d17700) from PID 0; stack trace: ***
 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /root/doris/be/src/common/signal_handler.h:420
 1# 0x00007FFA591F7D10 in /lib64/libpthread.so.0
 2# doris::vectorized::PredicateColumnType<(doris::PrimitiveType)15>::get_data() const at /root/doris/be/src/vec/columns/predicate_column.h:395
 3# void doris::InListPredicateBase<(doris::PrimitiveType)15, (doris::PredicateType)7, doris::StringSet<doris::FixedContainer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 2ul> > >::_base_evaluate_bit<true, true, false>(doris::vectorized::IColumn const*, doris::vectorized::PODArray<unsigned char, 4096ul, doris::Allocator<false, false, false, doris::DefaultMemoryAllocator, false>, 16ul, 15ul> const*, unsigned short const*, unsigned short, bool*) const at /root/doris/be/src/olap/in_list_predicate.h:526
 4# void doris::InListPredicateBase<(doris::PrimitiveType)15, (doris::PredicateType)7, doris::StringSet<doris::FixedContainer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 2ul> > >::_evaluate_bit<false>(doris::vectorized::IColumn const&, unsigned short const*, unsigned short, bool*) const at /root/doris/be/src/olap/in_list_predicate.h:249
 5# doris::InListPredicateBase<(doris::PrimitiveType)15, (doris::PredicateType)7, doris::StringSet<doris::FixedContainer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 2ul> > >::evaluate_or(doris::vectorized::IColumn const&, unsigned short const*, unsigned short, bool*) const at /root/doris/be/src/olap/in_list_predicate.h:272
 6# doris::SingleColumnBlockPredicate::evaluate_or(std::vector<doris::COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>, std::allocator<doris::COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn> > >&, unsigned short*, unsigned short, bool*) const at /root/doris/be/src/olap/block_column_predicate.cpp:65
 7# doris::OrBlockColumnPredicate::evaluate(std::vector<doris::COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>, std::allocator<doris::COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn> > >&, unsigned short*, unsigned short) const at /root/doris/be/src/olap/block_column_predicate.cpp:92
 8# doris::AndBlockColumnPredicate::evaluate(std::vector<doris::COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn>, std::allocator<doris::COW<doris::vectorized::IColumn>::mutable_ptr<doris::vectorized::IColumn> > >&, unsigned short*, unsigned short) const at /root/doris/be/src/olap/block_column_predicate.cpp:133
 9# doris::segment_v2::SegmentIterator::_evaluate_short_circuit_predicate(unsigned short*, unsigned short) at /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2196
10# doris::segment_v2::SegmentIterator::_next_batch_internal(doris::vectorized::Block*) at /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2491
11# doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*)::$_0::operator()() const at /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2252
12# doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*) at /root/doris/be/src/olap/rowset/segment_v2/segment_iterator.cpp:2251
13# doris::segment_v2::LazyInitSegmentIterator::next_batch(doris::vectorized::Block*) in /root/doris/be/output/lib/doris_be
14# doris::BetaRowsetReader::next_block(doris::vectorized::Block*) at /root/doris/be/src/olap/rowset/beta_rowset_reader.cpp:348
15# doris::vectorized::VCollectIterator::Level0Iterator::_refresh() in /root/doris/be/output/lib/doris_be
16# doris::vectorized::VCollectIterator::Level0Iterator::refresh_current_row() at /root/doris/be/src/vec/olap/vcollect_iterator.cpp:515
17# doris::vectorized::VCollectIterator::Level0Iterator::ensure_first_row_ref() at /root/doris/be/src/vec/olap/vcollect_iterator.cpp:486
18# doris::vectorized::VCollectIterator::Level1Iterator::ensure_first_row_ref() at /root/doris/be/src/vec/olap/vcollect_iterator.cpp:701
19# doris::vectorized::VCollectIterator::build_heap(std::vector<std::shared_ptr<doris::RowsetReader>, std::allocator<std::shared_ptr<doris::RowsetReader> > >&) at /root/doris/be/src/vec/olap/vcollect_iterator.cpp:189
20# doris::vectorized::BlockReader::_init_collect_iter(doris::TabletReader::ReaderParams const&) at /root/doris/be/src/vec/olap/block_reader.cpp:152
21# doris::vectorized::BlockReader::init(doris::TabletReader::ReaderParams const&) at /root/doris/be/src/vec/olap/block_reader.cpp:226
22# doris::vectorized::OlapScanner::open(doris::RuntimeState*) at /root/doris/be/src/vec/exec/scan/olap_scanner.cpp:271
23# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>) at /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:182
24# doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const at /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:96
25# doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}::operator()() const at /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:95
26# bool std::__invoke_impl<bool, doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}&>(std::__invoke_other, doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:63
27# std::enable_if<is_invocable_r_v<bool, doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}&>, bool>::type std::__invoke_r<bool, doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}&>(doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:116
28# std::_Function_handler<bool (), doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>, std::shared_ptr<doris::vectorized::ScanTask>)::$_0::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
29# std::function<bool ()>::operator()() const at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:593
30# doris::vectorized::ScannerSplitRunner::process_for(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) at /root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:410
31# doris::vectorized::PrioritizedSplitRunner::process() at /root/doris/be/src/vec/exec/executor/time_sharing/prioritized_split_runner.cpp:103
32# doris::vectorized::TimeSharingTaskExecutor::_dispatch_thread() at /root/doris/be/src/vec/exec/executor/time_sharing/time_sharing_task_executor.cpp:570
33# void std::__invoke_impl<void, void (doris::vectorized::TimeSharingTaskExecutor::*&)(), doris::vectorized::TimeSharingTaskExecutor*&>(std::__invoke_memfun_deref, void (doris::vectorized::TimeSharingTaskExecutor::*&)(), doris::vectorized::TimeSharingTaskExecutor*&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:76
34# std::__invoke_result<void (doris::vectorized::TimeSharingTaskExecutor::*&)(), doris::vectorized::TimeSharingTaskExecutor*&>::type std::__invoke<void (doris::vectorized::TimeSharingTaskExecutor::*&)(), doris::vectorized::TimeSharingTaskExecutor*&>(void (doris::vectorized::TimeSharingTaskExecutor::*&)(), doris::vectorized::TimeSharingTaskExecutor*&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:98
35# void std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional:515
36# void std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>::operator()<, void>() at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional:600
37# void std::__invoke_impl<void, std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>&>(std::__invoke_other, std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:63
38# std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>&>(std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()>&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:119
39# std::_Function_handler<void (), std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::*(doris::vectorized::TimeSharingTaskExecutor*))()> >::_M_invoke(std::_Any_data const&) at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
40# std::function<void ()>::operator()() const at /root/ldb_toolchain_taipan/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:593
41# doris::Thread::supervise_thread(void*) at /root/doris/be/src/util/thread.cpp:460
42# asan_thread_start(void*) in /root/doris/be/output/lib/doris_be
43# start_thread in /lib64/libpthread.so.0
44# __GI___clone in /lib64/libc.so.6
```

Related PR: #xxx

Problem Summary:

### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [ ] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
@github-actions github-actions bot requested a review from morrySnow as a code owner October 11, 2025 06:24
@hello-stephen
Copy link
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@dataroaring dataroaring reopened this Oct 11, 2025
@hello-stephen
Copy link
Contributor

run buildall

@doris-robot
Copy link

TPC-H: Total hot run time: 32854 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit fdd19aa0d275ab21a89fc040865039eb07c85d62, data reload: false

------ Round 1 ----------------------------------
q1	17610	5481	5517	5481
q2	2037	396	284	284
q3	11888	1253	745	745
q4	10269	902	469	469
q5	8730	2397	2146	2146
q6	187	168	137	137
q7	927	738	630	630
q8	9333	1452	1118	1118
q9	5300	4953	4928	4928
q10	6775	2271	1804	1804
q11	485	290	270	270
q12	335	353	211	211
q13	17775	3633	3074	3074
q14	223	228	213	213
q15	527	464	462	462
q16	440	429	375	375
q17	607	876	380	380
q18	6965	6420	6372	6372
q19	1217	982	543	543
q20	348	334	212	212
q21	2866	2210	2011	2011
q22	1087	1038	989	989
Total cold run time: 105931 ms
Total hot run time: 32854 ms

----- Round 2, with runtime_filter_mode=off -----
q1	5550	5513	5582	5513
q2	243	331	231	231
q3	2264	2651	2279	2279
q4	1377	1774	1426	1426
q5	4497	5052	5013	5013
q6	169	165	126	126
q7	2103	1996	1812	1812
q8	2674	2888	2702	2702
q9	7320	7331	7185	7185
q10	3038	3286	2740	2740
q11	576	510	507	507
q12	683	765	620	620
q13	3439	3818	3196	3196
q14	285	292	263	263
q15	519	470	462	462
q16	425	485	457	457
q17	1237	1733	1254	1254
q18	7792	7405	7312	7312
q19	801	1200	1069	1069
q20	2020	2095	1883	1883
q21	5444	4914	4711	4711
q22	1066	1095	1014	1014
Total cold run time: 53522 ms
Total hot run time: 51775 ms

@doris-robot
Copy link

TPC-DS: Total hot run time: 193646 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit fdd19aa0d275ab21a89fc040865039eb07c85d62, data reload: false

query1	951	414	396	396
query2	6235	1904	1870	1870
query3	8689	217	206	206
query4	34129	24055	23737	23737
query5	3746	639	468	468
query6	283	192	181	181
query7	4202	493	316	316
query8	306	261	254	254
query9	9444	2635	2615	2615
query10	471	321	276	276
query11	18227	15431	15270	15270
query12	164	115	109	109
query13	1560	543	436	436
query14	10111	7246	6785	6785
query15	269	194	181	181
query16	8060	668	517	517
query17	1574	804	605	605
query18	2183	421	340	340
query19	238	199	178	178
query20	132	131	133	131
query21	209	131	115	115
query22	4558	4613	4472	4472
query23	35169	34687	34292	34292
query24	7417	2776	2742	2742
query25	529	508	451	451
query26	830	293	183	183
query27	2097	493	374	374
query28	5540	2262	2243	2243
query29	725	616	470	470
query30	251	192	198	192
query31	1008	929	832	832
query32	87	60	63	60
query33	494	380	335	335
query34	752	848	527	527
query35	764	826	767	767
query36	1028	1080	988	988
query37	108	94	69	69
query38	4078	3974	4026	3974
query39	1578	1526	1485	1485
query40	224	126	109	109
query41	50	51	49	49
query42	123	112	105	105
query43	506	542	486	486
query44	1398	843	858	843
query45	191	180	188	180
query46	890	1048	679	679
query47	1969	1982	1940	1940
query48	415	433	361	361
query49	719	494	412	412
query50	687	722	444	444
query51	7358	7366	7236	7236
query52	107	106	98	98
query53	237	261	192	192
query54	569	572	478	478
query55	80	82	81	81
query56	286	289	275	275
query57	1252	1261	1241	1241
query58	249	226	221	221
query59	3078	3177	3007	3007
query60	305	275	277	275
query61	122	118	134	118
query62	822	777	692	692
query63	234	200	190	190
query64	4501	1032	644	644
query65	3405	3324	3303	3303
query66	1017	430	319	319
query67	16642	16218	15662	15662
query68	7559	842	568	568
query69	497	325	275	275
query70	1229	1130	1145	1130
query71	374	291	258	258
query72	5778	3878	3791	3791
query73	641	743	359	359
query74	10402	9168	9441	9168
query75	3223	3158	2699	2699
query76	3157	1197	799	799
query77	578	384	289	289
query78	10422	10434	9589	9589
query79	3615	933	610	610
query80	698	525	449	449
query81	527	254	219	219
query82	596	124	94	94
query83	183	167	148	148
query84	291	102	84	84
query85	789	365	319	319
query86	403	322	293	293
query87	4319	4339	4232	4232
query88	5035	2418	2409	2409
query89	428	331	304	304
query90	1817	196	194	194
query91	139	146	123	123
query92	67	58	54	54
query93	2231	929	558	558
query94	687	396	316	316
query95	357	293	287	287
query96	491	605	284	284
query97	3180	3261	3151	3151
query98	228	219	203	203
query99	1614	1412	1308	1308
Total cold run time: 297187 ms
Total hot run time: 193646 ms

@doris-robot
Copy link

ClickBench: Total hot run time: 28.5 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit fdd19aa0d275ab21a89fc040865039eb07c85d62, data reload: false

query1	0.03	0.04	0.03
query2	0.08	0.03	0.03
query3	0.28	0.07	0.06
query4	1.60	0.10	0.11
query5	0.53	0.50	0.50
query6	1.13	0.73	0.72
query7	0.02	0.02	0.01
query8	0.04	0.03	0.03
query9	0.60	0.51	0.50
query10	0.57	0.56	0.55
query11	0.15	0.10	0.10
query12	0.13	0.10	0.12
query13	0.61	0.60	0.61
query14	0.78	0.81	0.79
query15	0.84	0.83	0.85
query16	0.40	0.39	0.40
query17	1.09	1.06	1.07
query18	0.24	0.23	0.23
query19	2.01	1.88	1.87
query20	0.02	0.02	0.02
query21	15.40	0.94	0.57
query22	0.77	0.70	0.72
query23	15.09	1.50	0.69
query24	3.41	1.59	0.25
query25	0.14	0.12	0.10
query26	0.48	0.14	0.13
query27	0.05	0.04	0.04
query28	13.31	1.02	0.44
query29	12.55	3.96	3.27
query30	0.25	0.09	0.09
query31	2.82	0.59	0.39
query32	3.22	0.55	0.47
query33	3.02	3.05	3.00
query34	16.71	5.19	4.49
query35	4.53	4.61	4.56
query36	0.68	0.51	0.48
query37	0.09	0.06	0.06
query38	0.04	0.03	0.03
query39	0.04	0.02	0.02
query40	0.18	0.15	0.13
query41	0.08	0.03	0.02
query42	0.04	0.03	0.02
query43	0.04	0.03	0.03
Total cold run time: 104.09 s
Total hot run time: 28.5 s

@morrySnow morrySnow merged commit 24ee66e into branch-3.1 Oct 13, 2025
21 of 22 checks passed
@github-actions github-actions bot deleted the auto-pick-56309-branch-3.1 branch October 13, 2025 04:11
@morrySnow morrySnow mentioned this pull request Oct 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants