Skip to content

[Bug] doris::vectorized::ColumnStr<unsigned int>::insert_indices_from #60713

@xtay573269555

Description

@xtay573269555

Search before asking

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

Version

Doris version: 2.1.7
BE git commitID: 443e87e

What's Wrong?

The following SQL leads to 2 of 3 BE nodes crashed.

insert into `schema_mask`.`table_mask` (`fct_bid`, `exec_time`, `testcase_result_id`, `data_area`, `project_sk`, `product_id`, `testplan_id`, `testcase_id`, `operator_user_sk`, `exec_type`, `result`, `external_id`, `__sys_utime`, `__sys_phdel`)
    (
       select `fct_bid`, `exec_time`, `testcase_result_id`, `data_area`, `project_sk`, `product_id`, `testplan_id`, `testcase_id`, `operator_user_sk`, `exec_type`, `result`, `external_id`, `__sys_utime`, `__sys_phdel`
       from `schema_mask`.`table_mask_tmp`
    )

BE log

*** Query id: ec77b46ca875443e-8287e2bd68070b2b ***
*** is nereids: 1 ***
*** tablet id: 0 ***
*** Aborted at 1770713085 (unix time) try "date -d @1770713085" if you are using GNU date ***
*** Current BE git commitID: 443e87e203 ***
*** SIGSEGV address not mapped to object (@0x2e0) received by PID 29930 (TID 31355 OR 0x7f33c8cc6700) from PID 736; stack trace: ***
 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_release/doris/be/src/common/signal_handler.h:421
 1# os::Linux::chained_handler(int, siginfo*, void*) in /data/jdk/jre/lib/amd64/server/libjvm.so
 2# JVM_handle_linux_signal in /data/jdk/jre/lib/amd64/server/libjvm.so
 3# signalHandler(int, siginfo*, void*) in /data/jdk/jre/lib/amd64/server/libjvm.so
 4# 0x00007F36B9E69400 in /lib64/libc.so.6
 5# doris::vectorized::ColumnStr<unsigned int>::insert_indices_from(doris::vectorized::IColumn const&, unsigned int const*, unsigned int const*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/columns/column_string.cpp:203
 6# doris::vectorized::ColumnNullable::insert_indices_from(doris::vectorized::IColumn const&, unsigned int const*, unsigned int const*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/columns/column_nullable.cpp:309
 7# doris::vectorized::MutableBlock::add_rows(doris::vectorized::Block const*, unsigned int const*, unsigned int const*, std::vector<int, std::allocator<int> > const*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/core/block.cpp:1014
 8# doris::vectorized::BlockSerializer<doris::pipeline::ExchangeSinkLocalState>::next_serialized_block(doris::vectorized::Block*, doris::PBlock*, int, bool*, bool,std::vector<unsigned int, std::allocator<unsigned int> > const*) at /home/zcp/repo_center/doris_release/doris/be/src/vec/sink/vdata_stream_sender.cpp:888
 9# doris::vectorized::PipChannel<doris::pipeline::ExchangeSinkLocalState>::add_rows(doris::vectorized::Block*, std::vector<unsigned int, std::allocator<unsigned int> > const&, bool) at /home/zcp/repo_center/doris_release/doris/be/src/vec/sink/vdata_stream_sender.h:539
10# doris::Status doris::pipeline::ExchangeSinkOperatorX::channel_add_rows_with_idx<std::vector<doris::vectorized::PipChannel<doris::pipeline::ExchangeSinkLocalState>*, std::allocator<doris::vectorized::PipChannel<doris::pipeline::ExchangeSinkLocalState>*> > >(doris::RuntimeState*, std::vector<doris::vectorized::PipChannel<doris::pipeline::ExchangeSinkLocalState>*, std::allocator<doris::vectorized::PipChannel<doris::pipeline::ExchangeSinkLocalState>*> >&, int, std::vector<std::vector<unsigned int, std::allocator<unsigned int> >, std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >&, doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/exec/exchange_sink_operator.cpp:713
11# doris::pipeline::ExchangeSinkOperatorX::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/exec/exchange_sink_operator.cpp:586
12# doris::pipeline::ExchangeSinkLocalState::_send_new_partition_batch() at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/exec/exchange_sink_operator.cpp:332
13# doris::pipeline::ExchangeSinkOperatorX::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/exec/exchange_sink_operator.cpp:582
14# doris::pipeline::PipelineXTask::execute(bool*) in /data/doris/be/lib/doris_be
15# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /home/zcp/repo_center/doris_release/doris/be/src/pipeline/task_scheduler.cpp:347
16# doris::ThreadPool::dispatch_thread() in /data/doris/be/lib/doris_be
17# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_release/doris/be/src/util/thread.cpp:499
18# start_thread in /lib64/libpthread.so.0
19# clone in /lib64/libc.so.6

What You Expected?

Find the root cause to avoid the similar issue.

How to Reproduce?

Nothing special exception the SQL.
We retried to execute the SQL successfully without crash after we startup the 2 crashed BE manually.
We deployed doris with 1 fe and 3 be with VM linux.

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