Skip to content

[Bug] insert_date_column of large data make BE crashed #14838

@cambyzju

Description

@cambyzju

Search before asking

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

Version

latest-master

What's Wrong?

*** Query id: 0-0 ***
*** Aborted at 1670250093 (unix time) try "date -d @1670250093" if you are using GNU date ***
*** Current BE git commitID: 1190fd4 ***
*** SIGSEGV address not mapped to object (@0x7f9af269e000) received by PID 82219 (TID 0x7f9a9f9ff640) from PID 18446744073481609216; stack trace: ***
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/common/signal_handler.h:420
1# 0x00007F9AF3A8E080 in /opt/compiler/gcc-12/lib/libc.so.6
2# void doris::vectorized::PODArray<long, 4096ul, Allocator<false, false>, 15ul, 16ul>::push_back_without_reserve(long&&) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/common/pod_array.h:424
3# doris::vectorized::ColumnVector::insert_date_column(char const*, unsigned long) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/columns/column_vector.h:171
4# doris::vectorized::ColumnVector::insert_many_fix_len_data(char const*, unsigned long) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/columns/column_vector.h:206
5# doris::vectorized::ColumnNullable::insert_many_fix_len_data(char const*, unsigned long) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/columns/column_nullable.h:113
6# doris::segment_v2::BitShufflePageDecoder<(doris::FieldType)14>::next_batch(unsigned long*, COWdoris::vectorized::IColumn::mutable_ptrdoris::vectorized::IColumn&) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/segment_v2/bitshuffle_page.h:397
7# doris::segment_v2::FileColumnIterator::next_batch(unsigned long*, COWdoris::vectorized::IColumn::mutable_ptrdoris::vectorized::IColumn&, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/segment_v2/column_reader.cpp:805
8# doris::segment_v2::ArrayFileColumnIterator::next_batch(unsigned long*, COWdoris::vectorized::IColumn::mutable_ptrdoris::vectorized::IColumn&, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/segment_v2/column_reader.cpp:585
9# doris::segment_v2::ArrayFileColumnIterator::read_by_rowids(unsigned int const*, unsigned long, COWdoris::vectorized::IColumn::mutable_ptrdoris::vectorized::IColumn&) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/segment_v2/column_reader.cpp:607
10# doris::segment_v2::SegmentIterator::_read_columns_by_rowids(std::vector<unsigned int, std::allocator >&, std::vector<unsigned int, std::allocator >&, unsigned short*, unsigned long) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/segment_v2/segment_iterator.cpp:1092
11# doris::segment_v2::SegmentIterator::next_batch(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/segment_v2/segment_iterator.cpp:1204
12# doris::BetaRowsetReader::next_block(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/olap/rowset/beta_rowset_reader.cpp:299
13# doris::vectorized::VCollectIterator::Level0Iterator::next(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/vcollect_iterator.cpp:268
14# doris::vectorized::VCollectIterator::Level1Iterator::_normal_next(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/vcollect_iterator.cpp:534
15# doris::vectorized::VCollectIterator::Level1Iterator::_normal_next(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/vcollect_iterator.cpp:542
16# doris::vectorized::VCollectIterator::Level1Iterator::next(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/vcollect_iterator.cpp:361
17# doris::vectorized::VCollectIterator::next(doris::vectorized::Block*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/vcollect_iterator.cpp:187
18# doris::vectorized::BlockReader::_direct_next_block(doris::vectorized::Block*, doris::MemPool*, doris::ObjectPool*, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/block_reader.cpp:168
19# doris::vectorized::BlockReader::next_block_with_aggregation(doris::vectorized::Block*, doris::MemPool*, doris::ObjectPool*, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/olap/block_reader.h:46
20# doris::vectorized::NewOlapScanner::_get_block_impl(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/exec/scan/new_olap_scanner.cpp:318
21# doris::vectorized::VScanner::get_block(doris::RuntimeState*, doris::vectorized::Block*, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/exec/scan/vscanner.cpp:56
22# doris::vectorized::ScannerScheduler::_scanner_scan(doris::vectorized::ScannerScheduler*, doris::vectorized::ScannerContext*, doris::vectorized::VScanner*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/exec/scan/scanner_scheduler.cpp:236
23# doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}::operator()() const at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/exec/scan/scanner_scheduler.cpp:143
24# void std::__invoke_impl<void, doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}&>(std::__invoke_other, doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:61
25# std::enable_if<is_invocable_r_v<void, doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}&>, void>::type std::__invoke_r<void, doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}&>(doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:117
26# std::_Function_handler<void (), doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:291
27# std::function<void ()>::operator()() const at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:591
28# doris::FunctionRunnable::run() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/util/threadpool.cpp:45
29# doris::ThreadPool::dispatch_thread() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/util/threadpool.cpp:542
30# void std::__invoke_impl<void, void (doris::ThreadPool::&)(), doris::ThreadPool&>(std::__invoke_memfun_deref, void (doris::ThreadPool::&)(), doris::ThreadPool&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:74
31# std::__invoke_result<void (doris::ThreadPool::&)(), doris::ThreadPool&>::type std::__invoke<void (doris::ThreadPool::&)(), doris::ThreadPool&>(void (doris::ThreadPool::&)(), doris::ThreadPool&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:97
32# void std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at /home/opt/compiler/gcc-12/include/c++/12.1.0/functional:486
33# void std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>::operator()<, void>() at /home/opt/compiler/gcc-12/include/c++/12.1.0/functional:569
34# void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:61
35# 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))()>&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:117
36# std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()> >::_M_invoke(std::_Any_data const&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:291
37# std::function<void ()>::operator()() const at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:591
38# doris::Thread::supervise_thread(void*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/util/thread.cpp:455
39# start_thread at /root/work/deck/devel/toolchain/glibc-2.33/nptl/pthread_create.c:474
40# __clone at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

What You Expected?

do not crash

How to Reproduce?

  1. create table with columns: k1 INT, a10 ARRAY;
  2. insert lots of data, more than 4096;
  3. delete from table where k1 > 0, to delete some data;
  4. select * from table;

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