Skip to content

[Bug] BE Crash with SIGABRT on Load queries and throws bit_stream_utils.h:187] Check failed: buffer != nullptr #66430

Description

@nsivarajan

Search before asking

  • I had searched in the issues and found no similar issues.

Version

Doris - 4.1.2

What's Wrong?

start BE in cloud mode, cloud_unique_id: 1:65674569:r1nl60nc, meta_service_endpoint: 57.102.48.85:5000,57.102.48.100:5000,57.102.48.115:5000
F20260804 01:08:22.742511 1267671 bit_stream_utils.h:187] Check failed: buffer != nullptr
*** Check failure stack trace: ***
@ 0x5b7a6182760f google::LogMessage::SendToLog()
@ 0x5b7a6181dc20 google::LogMessage::Flush()
@ 0x5b7a61821319 google::LogMessageFatal::~LogMessageFatal()
@ 0x5b7a5e641b3e doris::BatchedBitReader::Reset()
@ 0x5b7a5e7022b2 doris::vectorized::BoolPlainDecoder::set_data()
@ 0x5b7a5e638d04 doris::vectorized::ColumnChunkReader<>::load_page_data()
@ 0x5b7a5e6252f0 doris::vectorized::ColumnChunkReader<>::load_page_data_idempotent()
@ 0x5b7a5e61191a doris::vectorized::ScalarColumnReader<>::read_column_data()
@ 0x5b7a5e5f75a1 doris::vectorized::RowGroupReader::_read_column_data()
@ 0x5b7a5e5f1c8d doris::vectorized::RowGroupReader::next_batch()
@ 0x5b7a5e5c8be4 doris::vectorized::ParquetReader::get_next_block()
@ 0x5b7a5e762820 doris::vectorized::FileScanner::_get_block_wrapped()
@ 0x5b7a5e75c3b0 doris::vectorized::FileScanner::_get_block_impl()
@ 0x5b7a5e803e92 doris::vectorized::Scanner::get_block()
@ 0x5b7a5e803a4a doris::vectorized::Scanner::get_block_after_projects()
@ 0x5b7a5e80966a doris::vectorized::ScannerScheduler::_scanner_scan()
@ 0x5b7a5e80856d _ZZZZN5doris10vectorized16ScannerScheduler6submitESt10shared_ptrINS0_14ScannerContextEES2_INS0_8ScanTaskEEENK3$_0clEvENKUlvE_clEvENKUlvE_clEv
@ 0x5b7a5e808387 _ZZZN5doris10vectorized16ScannerScheduler6submitESt10shared_ptrINS0_14ScannerContextEES2_INS0_8ScanTaskEEENK3$_0clEvENKUlvE_clEv
@ 0x5b7a5e808345 _ZSt13__invoke_implIbRZZN5doris10vectorized16ScannerScheduler6submitESt10shared_ptrINS1_14ScannerContextEES3_INS1_8ScanTaskEEENK3$0clEvEUlvE_JEET_St14__invoke_otherOT0_DpOT1
@ 0x5b7a5e808305 _ZSt10__invoke_rIbRZZN5doris10vectorized16ScannerScheduler6submitESt10shared_ptrINS1_14ScannerContextEES3_INS1_8ScanTaskEEENK3$0clEvEUlvE_JEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESC_E4typeEOSD_DpOSE
@ 0x5b7a5e8081bd _ZNSt17_Function_handlerIFbvEZZN5doris10vectorized16ScannerScheduler6submitESt10shared_ptrINS2_14ScannerContextEES4_INS2_8ScanTaskEEENK3$_0clEvEUlvE_E9_M_invokeERKSt9_Any_data
@ 0x5b7a57d1edfe std::function<>::operator()()
@ 0x5b7a5e807762 doris::vectorized::ScannerSplitRunner::process_for()
@ 0x5b7a5e863ce8 doris::vectorized::PrioritizedSplitRunner::process()
@ 0x5b7a5e84a020 doris::vectorized::TimeSharingTaskExecutor::_dispatch_thread()
@ 0x5b7a5e858692 std::__invoke_impl<>()
@ 0x5b7a5e8585dd std::__invoke<>()
@ 0x5b7a5e8585ad _ZNSt5_BindIFMN5doris10vectorized23TimeSharingTaskExecutorEFvvEPS2_EE6__callIvJEJLm0EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE
@ 0x5b7a5e858566 std::_Bind<>::operator()<>()
@ 0x5b7a5e858535 std::__invoke_impl<>()
@ 0x5b7a5e8584f5 ZSt10__invoke_rIvRSt5_BindIFMN5doris10vectorized23TimeSharingTaskExecutorEFvvEPS3_EEJEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESB_E4typeEOSC_DpOSD
@ 0x5b7a5e85835d std::_Function_handler<>::_M_invoke()
*** Query id: c22121b9ab894ef4-acd8857bdff4d757 ***
*** is nereids: 1 ***
*** tablet id: 0 ***
*** Aborted at 1785820103 (unix time) try "date -d @1785820103" if you are using GNU date ***
*** Current BE git commitID: d5cfef0 ***
*** SIGABRT unknown detail explain (@0x3424100100796) received by PID 1050518 (TID 1267671 OR 0x783b240e6700) from PID 1050518; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /ngs/app/doris/doris/be/src/common/signal_handler.h:420
1# 0x0000784C42A8CCF0 in /lib64/libpthread.so.0
2# __GI_raise in /lib64/libc.so.6
3# __GI_abort in /lib64/libc.so.6
4# 0x00005B7A6182C645 in /ngs/app/doris/doris-current/be/lib/doris_be
5# 0x00005B7A6181DEFA in /ngs/app/doris/doris-current/be/lib/doris_be
6# google::LogMessage::SendToLog() in /ngs/app/doris/doris-current/be/lib/doris_be
7# google::LogMessage::Flush() in /ngs/app/doris/doris-current/be/lib/doris_be
8# google::LogMessageFatal::~LogMessageFatal() in /ngs/app/doris/doris-current/be/lib/doris_be
9# doris::BatchedBitReader::Reset(unsigned char const*, long) in /ngs/app/doris/doris-current/be/lib/doris_be
10# doris::vectorized::BoolPlainDecoder::set_data(doris::Slice*) at /ngs/app/doris/doris/be/src/vec/exec/format/parquet/bool_plain_decoder.h:50
11# doris::vectorized::ColumnChunkReader<false, false>::load_page_data() at /ngs/app/doris/doris/be/src/vec/exec/format/parquet/vparquet_column_chunk_reader.cpp:248
12# doris::vectorized::ColumnChunkReader<false, false>::load_page_data_idempotent() in /ngs/app/doris/doris-current/be/lib/doris_be
13# doris::vectorized::ScalarColumnReader<false, false>::read_column_data(doris::COWdoris::vectorized::IColumn::immutable_ptrdoris::vectorized::IColumn&, std::shared_ptr<doris::vectorized::IDataType const>&, std::shared_ptrdoris::vectorized::TableSchemaChangeHelper::Node const&, doris::vectorized::FilterMap&, unsigned long, unsigned long*, bool*, bool, long) at /ngs/app/doris/doris/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:594
14# doris::vectorized::RowGroupReader::_read_column_data(doris::vectorized::Block*, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, unsigned long, unsigned long*, bool*, doris::vectorized::FilterMap&) at /ngs/app/doris/doris/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:452
15# doris::vectorized::RowGroupReader::next_batch(doris::vectorized::Block*, unsigned long, unsigned long*, bool*) at /ngs/app/doris/doris/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:324
16# doris::vectorized::ParquetReader::get_next_block(doris::vectorized::Block*, unsigned long*, bool*) at /ngs/app/doris/doris/be/src/vec/exec/format/parquet/vparquet_reader.cpp:616
17# doris::vectorized::FileScanner::_get_block_wrapped(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /ngs/app/doris/doris/be/src/vec/exec/scan/file_scanner.cpp:468
18# doris::vectorized::FileScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /ngs/app/doris/doris/be/src/vec/exec/scan/file_scanner.cpp:407
19# doris::vectorized::Scanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /ngs/app/doris/doris/be/src/vec/exec/scan/scanner.cpp:110
20# doris::vectorized::Scanner::get_block_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*) in /ngs/app/doris/doris-current/be/lib/doris_be
21# doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask) at /ngs/app/doris/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:186
22# doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}::operator()() const::{lambda()#1}::operator()() const at /ngs/app/doris/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:76
23# doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}::operator()() const at /ngs/app/doris/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:75
24# bool std::__invoke_impl<bool, doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}&>(std::__invoke_other, doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}&) at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:63
25# std::enable_if<is_invocable_r_v<bool, doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}&>, bool>::type std::__invoke_r<bool, doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}&>(doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}&) at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:116
26# std::_Function_handler<bool (), doris::vectorized::ScannerScheduler::submit(std::shared_ptrdoris::vectorized::ScannerContext, std::shared_ptrdoris::vectorized::ScanTask)::$_0::operator()() const::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
27# std::function<bool ()>::operator()() const at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:593
28# doris::vectorized::ScannerSplitRunner::process_for(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) at /ngs/app/doris/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:427
29# doris::vectorized::PrioritizedSplitRunner::process() at /ngs/app/doris/doris/be/src/vec/exec/executor/time_sharing/prioritized_split_runner.cpp:104
30# doris::vectorized::TimeSharingTaskExecutor::_dispatch_thread() at /ngs/app/doris/doris/be/src/vec/exec/executor/time_sharing/time_sharing_task_executor.cpp:566
31# void std::__invoke_impl<void, void (doris::vectorized::TimeSharingTaskExecutor::&)(), doris::vectorized::TimeSharingTaskExecutor&>(std::__invoke_memfun_deref, void (doris::vectorized::TimeSharingTaskExecutor::&)(), doris::vectorized::TimeSharingTaskExecutor&) at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:76
32# 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 /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:98
33# void std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::(doris::vectorized::TimeSharingTaskExecutor))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional:515
34# void std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::(doris::vectorized::TimeSharingTaskExecutor))()>::operator()<, void>() at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional:600
35# 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 /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:63
36# 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 /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:119
37# std::_Function_handler<void (), std::_Bind<void (doris::vectorized::TimeSharingTaskExecutor::(doris::vectorized::TimeSharingTaskExecutor))()> >::_M_invoke(std::_Any_data const&) at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:292
38# std::function<void ()>::operator()() const at /ngs/app/doris/master-build/ldb_toolchain/bin/../lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/std_function.h:593
39# doris::Thread::supervise_thread(void*) at /ngs/app/doris/doris/be/src/util/thread.cpp:460
40# start_thread in /lib64/libpthread.so.0
41# __clone in /lib64/libc.so.6

What You Expected?

BE should not crash based on Query or data/parquet corrupted file

How to Reproduce?

No response

Anything Else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions