cambyzju opened a new issue, #15320: URL: https://github.com/apache/doris/issues/15320
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Version latest ### What's Wrong? F1221 22:08:58.347618 29624 assert_cast.h:50] Bad cast from type:doris::vectorized::IColumn const* to doris::vectorized::ColumnString const* *** Check failure stack trace: *** @ 0x118a8cbd google::LogMessage::Fail() @ 0x118aaf19 google::LogMessage::SendToLog() @ 0x118a8829 google::LogMessage::Flush() @ 0x118ab4e9 google::LogMessageFatal::~LogMessageFatal() @ 0xca77ad7 assert_cast<>() @ 0x10eed927 doris::stream_load::VOlapTableSink::_validate_column() @ 0x10eee4fc doris::stream_load::VOlapTableSink::_validate_column() @ 0x10eeeae0 doris::stream_load::VOlapTableSink::_validate_data() @ 0x10eec2ad doris::stream_load::VOlapTableSink::send() @ 0xc1285ca doris::PlanFragmentExecutor::open_vectorized_internal() @ 0xc127dff doris::PlanFragmentExecutor::open() @ 0xc0ef8a1 doris::FragmentExecState::execute() @ 0xc0f2b0e doris::FragmentMgr::_exec_actual() @ 0xc0f3816 _ZZN5doris11FragmentMgr18exec_plan_fragmentERKNS_23TExecPlanFragmentParamsESt8functionIFvPNS_12RuntimeStateEPNS_6StatusEEEENKUlvE_clEv @ 0xc0f9db2 _ZSt13__invoke_implIvRZN5doris11FragmentMgr18exec_plan_fragmentERKNS0_23TExecPlanFragmentParamsESt8functionIFvPNS0_12RuntimeStateEPNS0_6StatusEEEEUlvE_JEET_St14__invoke_otherOT0_DpOT1_ @ 0xc0f9a0c _ZSt10__invoke_rIvRZN5doris11FragmentMgr18exec_plan_fragmentERKNS0_23TExecPlanFragmentParamsESt8functionIFvPNS0_12RuntimeStateEPNS0_6StatusEEEEUlvE_JEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESF_E4typeEOSG_DpOSH_ @ 0xc0f93fd _ZNSt17_Function_handlerIFvvEZN5doris11FragmentMgr18exec_plan_fragmentERKNS1_23TExecPlanFragmentParamsESt8functionIFvPNS1_12RuntimeStateEPNS1_6StatusEEEEUlvE_E9_M_invokeERKSt9_Any_data @ 0xc04a9a6 std::function<>::operator()() @ 0xc56257c doris::FunctionRunnable::run() @ 0xc5608d7 doris::ThreadPool::dispatch_thread() @ 0xc56e3eb std::__invoke_impl<>() @ 0xc56db3f std::__invoke<>() @ 0xc56d39c _ZNSt5_BindIFMN5doris10ThreadPoolEFvvEPS1_EE6__callIvJEJLm0EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE @ 0xc56c6c8 std::_Bind<>::operator()<>() @ 0xc56b57a std::__invoke_impl<>() @ 0xc56a2b2 _ZSt10__invoke_rIvRSt5_BindIFMN5doris10ThreadPoolEFvvEPS2_EEJEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESA_E4typeEOSB_DpOSC_ @ 0xc568367 std::_Function_handler<>::_M_invoke() @ 0xc04a9a6 std::function<>::operator()() @ 0xc553c5e doris::Thread::supervise_thread() @ 0x7f2295ed6d05 start_thread @ 0x7f2295fe864f __GI___clone @ (nil) (unknown) *** Query id: 7e48a353d3ec8949-8598a53907663cbb *** *** Aborted at 1671631738 (unix time) try "date -d @1671631738" if you are using GNU date *** *** Current BE git commitID: 7d556e9d7 *** *** SIGABRT unkown detail explain (@0x37110000065d2) received by PID 26066 (TID 0x7f21635ff640) from PID 26066; 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# 0x00007F2295F29080 in /opt/compiler/gcc-12/lib/libc.so.6 2# raise at ../sysdeps/unix/sysv/linux/raise.c:50 3# abort at /root/work/deck/devel/toolchain/glibc-2.33/stdlib/abort.c:81 4# 0x00000000118B338C in /home/disk1/zhuxiaoli01/doris/output_for_master/be1/lib/doris_be 5# 0x00000000118A8CBD in /home/disk1/zhuxiaoli01/doris/output_for_master/be1/lib/doris_be 6# google::LogMessage::SendToLog() in /home/disk1/zhuxiaoli01/doris/output_for_master/be1/lib/doris_be 7# google::LogMessage::Flush() in /home/disk1/zhuxiaoli01/doris/output_for_master/be1/lib/doris_be 8# google::LogMessageFatal::~LogMessageFatal() in /home/disk1/zhuxiaoli01/doris/output_for_master/be1/lib/doris_be 9# doris::vectorized::ColumnString const* assert_cast<doris::vectorized::ColumnString const*, doris::vectorized::IColumn const*>(doris::vectorized::IColumn const*&&) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/common/assert_cast.h:46 10# doris::stream_load::VOlapTableSink::_validate_column(doris::RuntimeState*, doris::TypeDescriptor const&, bool, COW<doris::vectorized::IColumn>::immutable_ptr<doris::vectorized::IColumn>, unsigned long, doris::Bitmap*, bool*, fmt::v7::basic_memory_buffer<char, 500ul, std::allocator<char> >&, doris::vectorized::PODArray<unsigned long, 4096ul, Allocator<false, false>, 15ul, 16ul>*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/sink/vtablet_sink.cpp:680 11# doris::stream_load::VOlapTableSink::_validate_column(doris::RuntimeState*, doris::TypeDescriptor const&, bool, COW<doris::vectorized::IColumn>::immutable_ptr<doris::vectorized::IColumn>, unsigned long, doris::Bitmap*, bool*, fmt::v7::basic_memory_buffer<char, 500ul, std::allocator<char> >&, doris::vectorized::PODArray<unsigned long, 4096ul, Allocator<false, false>, 15ul, 16ul>*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/sink/vtablet_sink.cpp:796 12# doris::stream_load::VOlapTableSink::_validate_data(doris::RuntimeState*, doris::vectorized::Block*, doris::Bitmap*, int*, bool*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/sink/vtablet_sink.cpp:839 13# doris::stream_load::VOlapTableSink::send(doris::RuntimeState*, doris::vectorized::Block*, bool) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/vec/sink/vtablet_sink.cpp:537 14# doris::PlanFragmentExecutor::open_vectorized_internal() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/runtime/plan_fragment_executor.cpp:311 15# doris::PlanFragmentExecutor::open() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/runtime/plan_fragment_executor.cpp:250 16# doris::FragmentExecState::execute() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/runtime/fragment_mgr.cpp:250 17# doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::RuntimeState*, doris::Status*)>) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/runtime/fragment_mgr.cpp:490 18# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}::operator()() const at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/runtime/fragment_mgr.cpp:725 19# void std::__invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}&>(std::__invoke_other, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:61 20# std::enable_if<is_invocable_r_v<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}&>, void>::type std::__invoke_r<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}&>(doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/invoke.h:117 21# std::_Function_handler<void (), doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:291 22# std::function<void ()>::operator()() const at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:591 23# doris::FunctionRunnable::run() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/util/threadpool.cpp:46 24# doris::ThreadPool::dispatch_thread() at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/util/threadpool.cpp:543 25# 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 26# 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 27# 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 28# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() at /home/opt/compiler/gcc-12/include/c++/12.1.0/functional:569 29# 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 30# 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 31# 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 32# std::function<void ()>::operator()() const at /home/opt/compiler/gcc-12/include/c++/12.1.0/bits/std_function.h:591 33# doris::Thread::supervise_thread(void*) at /home/disk1/zhuxiaoli01/doris/baidu/bdg/doris/core/be/src/util/thread.cpp:455 34# start_thread at /root/work/deck/devel/toolchain/glibc-2.33/nptl/pthread_create.c:474 35# __clone at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97 ### What You Expected? do not crash ### How to Reproduce? 1. create test table with array type: ` CREATE TABLE test_array_load_test_array_stream_param_db.test_array_load_test_array_stream_param_tb ( k1 int NOT NULL, a1 array<boolean> NOT NULL, a2 array<tinyint> NOT NULL, a3 array<smallint> NOT NULL, a4 array<int> NOT NULL, a5 array<bigint> NOT NULL, a6 array<largeint> NOT NULL, a7 array<decimal(27, 7)> NOT NULL, a8 array<float> NOT NULL, a9 array<double> NOT NULL, a10 array<date> NOT NULL, a11 array<datetime> NOT NULL, a12 array<char(20)> NOT NULL, a13 array<varchar(50)> NOT NULL, a14 array<string> NOT NULL ) DUPLICATE KEY(k1) PARTITION BY RANGE(k1) ( PARTITION p1 VALUES LESS THAN ("-10"), PARTITION p2 VALUES LESS THAN ("0"), PARTITION p3 VALUES LESS THAN ("10"), PARTITION p4 VALUES LESS THAN ("100"), PARTITION p5 VALUES LESS THAN MAXVALUE ) DISTRIBUTED BY HASH(k1) BUCKETS 5 properties("replication_num"="1");` 2. try to load data use different array type `a14=array_remove(cast(a5 as array<bigint>), 1)`, here schema type for a14 is Array<string>, but try to load type Array<bigint>, make be crash, because array type do not support cast now. `curl --location-trusted -u root: -H "Content-length:11742644" -H "Transfer-Encoding:" -H "column_separator:|" -H "Expect:100-continue" -H "timeout:300" -H "partitions:p1, p2" -H "where:size(a2) > 270" -H "columns:k1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,b14,a14=array_remove(cast(a5 as array<bigint>), 1)" -H "max_filter_ratio:0.8" -T array_test.data http://127.0.0.1:8030/api/test_array_load_test_array_stream_param_db/test_array_load_test_array_stream_param_tb/_stream_load` ### Anything Else? _No response_ ### Are you willing to submit PR? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org