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

Reply via email to