Skip to content

[Bug] [Load-Vectorized] core dump on KeyCoder::encode_ascending #9596

@liaoxin01

Description

@liaoxin01

Search before asking

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

Version

master-9f9b666

What's Wrong?

Failed to import tpch region table.

be.INFO
F0516 10:22:19.200414 891 key_coder.h:209] Check failed: index_size <= slice->size index size is larger than char size, index=25, char=6

be.out
0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /root/code/incubator-doris/be/src/common/signal_handler.h:407
1# 0x00007FF8BDFA9400 in /lib64/libc.so.6
2# gsignal in /lib64/libc.so.6
3# abort in /lib64/libc.so.6
4# google::ReadFromOffset(int, void*, unsigned long, long) [clone .cold] at src/symbolize.cc:146
5# 0x0000556BC37CD23D at src/logging.cc:1650
6# google::LogMessage::SendToLog() at src/logging.cc:1607
7# google::LogMessage::Flush() at src/logging.cc:1477
8# google::LogMessageFatal::~LogMessageFatal() at src/logging.cc:2227
9# doris::KeyCoderTraits<(doris::FieldType)13, void>::encode_ascending(void const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) at /root/code/incubator-doris/be/src/olap/key_coder.h:212
10# doris::KeyCoder::encode_ascending(void const
, unsigned long, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) const at /root/code/incubator-doris/be/src/olap/key_coder.h:56
11# doris::segment_v2::SegmentWriter::encode_short_keys[abi:cxx11](std::vector<void const
, std::allocator<void const*> >, bool) at /root/code/incubator-doris/be/src/olap/rowset/segment_v2/segment_writer.cpp:177
12# doris::segment_v2::SegmentWriter::append_block(doris::vectorized::Block const*, unsigned long, unsigned long) at /root/code/incubator-doris/be/src/olap/rowset/segment_v2/segment_writer.cpp:151
13# doris::BetaRowsetWriter::add_block(doris::vectorized::Block const*) at /root/code/incubator-doris/be/src/olap/rowset/beta_rowset_writer.cpp:124
14# doris::MemTable::_do_flush(long&) at /root/code/incubator-doris/be/src/olap/memtable.cpp:305
15# doris::MemTable::flush() at /root/code/incubator-doris/be/src/olap/memtable.cpp:277
16# doris::FlushToken::_flush_memtable(std::shared_ptrdoris::MemTable, long) at /root/code/incubator-doris/be/src/olap/memtable_flush_executor.cpp:75
17# void std::__invoke_impl<void, void (doris::FlushToken::&)(std::shared_ptrdoris::MemTable, long), doris::FlushToken&, std::shared_ptrdoris::MemTable&, long&>(std::__invoke_memfun_deref, void (doris::FlushToken::&)(std::shared_ptrdoris::MemTable, long), doris::FlushToken&, std::shared_ptrdoris::MemTable&, long&) in /root/code/incubator-doris/output/be/lib/palo_be
18# std::__invoke_result<void (doris::FlushToken::&)(std::shared_ptrdoris::MemTable, long), doris::FlushToken&, std::shared_ptrdoris::MemTable&, long&>::type std::__invoke<void (doris::FlushToken::&)(std::shared_ptrdoris::MemTable, long), doris::FlushToken&, std::shared_ptrdoris::MemTable&, long&>(void (doris::FlushToken::&)(std::shared_ptrdoris::MemTable, long), doris::FlushToken&, std::shared_ptrdoris::MemTable&, long&) in /root/code/incubator-doris/output/be/lib/palo_be
19# void std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) in /root/code/incubator-doris/output/be/lib/palo_be
20# void std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>::operator()<, void>() at /var/local/ldb-toolchain/include/c++/11/functional:505
21# void std::__invoke_impl<void, std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>&>(std::__invoke_other, std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>&) at /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
22# std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>&>(std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)>&) at /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:117
23# std::_Function_handler<void (), std::_Bind<void (doris::FlushToken::(doris::FlushToken, std::shared_ptrdoris::MemTable, long))(std::shared_ptrdoris::MemTable, long)> >::_M_invoke(std::_Any_data const&) at /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:292
24# std::function<void ()>::operator()() const at /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
25# doris::FunctionRunnable::run() at /root/code/incubator-doris/be/src/util/threadpool.cpp:45
26# doris::ThreadPool::dispatch_thread() at /root/code/incubator-doris/be/src/util/threadpool.cpp:548
27# void std::__invoke_impl<void, void (doris::ThreadPool::&)(), doris::ThreadPool&>(std::__invoke_memfun_deref, void (doris::ThreadPool::&)(), doris::ThreadPool&) at /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
28# 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/include/c++/11/bits/invoke.h:97
29# void std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at /var/local/ldb-toolchain/include/c++/11/functional:422
30# void std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()>::operator()<, void>() at /var/local/ldb-toolchain/include/c++/11/functional:505
31# 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/include/c++/11/bits/invoke.h:61
32# 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 /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:117
33# std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::(doris::ThreadPool))()> >::_M_invoke(std::_Any_data const&) at /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:292
34# std::function<void ()>::operator()() const at /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
35# doris::Thread::supervise_thread(void*) at /root/code/incubator-doris/be/src/util/thread.cpp:409
36# start_thread in /lib64/libpthread.so.0
37# clone in /lib64/libc.so.6

What You Expected?

be works.

How to Reproduce?

set enable_vectorized_load = true in fe.conf.
cd tools/tpch-tools
./build-tpch-dbgen.sh
./gen-tpch-data.sh -s 1
./create-tpch-tables.sh
./load-tpch-data.sh

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