xy720 opened a new issue, #31311:
URL: https://github.com/apache/doris/issues/31311

   ### 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
   
   1.2/2.0/trunk
   
   ### What's Wrong?
   
   core dump:
   
   ```
   Program terminated with signal SIGSEGV, Segmentation fault.
   #0  0x000055a6929be0ed in doris::vectorized::ColumnVector<unsigned 
long>::get_data (this=<optimized out>) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/columns/column_vector.h:423
   423         const Container& get_data() const { return data; }
   [Current thread is 1 (Thread 0x7fd7b7211700 (LWP 11617))]
   (gdb) bt
   #0  0x000055a6929be0ed in doris::vectorized::ColumnVector<unsigned 
long>::get_data (this=<optimized out>) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/columns/column_vector.h:423
   #1  doris::vectorized::ColumnArray::get_offsets (this=<optimized out>) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/columns/column_array.h:154
   #2  
doris::vectorized::FunctionsMultiStringSearch<doris::vectorized::FunctionMultiMatchAnyImpl<signed
 char, (doris::vectorized::MultiMatchTraits::Find)0, false> >::execute_impl 
(this=0x7fd674624000, 
       context=<optimized out>, block=..., arguments=..., result=5, 
input_rows_count=1) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/functions/functions_multi_string_search.cpp:111
   #3  0x000055a6908a199c in doris::vectorized::DefaultExecutable::execute_impl 
(input_rows_count=1, result=5, arguments=..., block=..., 
context=0x7fd674686018, this=0x7fd8849c4c90)
       at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/functions/function.h:484
   #4  
doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns
 (this=0x7fd8849c4c90, context=0x7fd674686018, block=..., args=..., result=5, 
input_rows_count=1, dry_run=false)
       at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/functions/function.cpp:244
   #5  0x000055a6908a2859 in doris::vectorized::PreparedFunctionImpl::execute 
(this=<optimized out>, context=<optimized out>, block=..., args=..., 
result=<optimized out>, input_rows_count=1, dry_run=false)
       at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/functions/function.cpp:265
   #6  0x000055a68ef9d2c4 in doris::vectorized::IFunctionBase::execute 
(this=this@entry=0x7fd674624050, context=0x7fd674686018, block=..., 
arguments=..., result=result@entry=5, input_rows_count=1, dry_run=false)
       at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/shared_ptr_base.h:1290
   #7  0x000055a69000f4f6 in doris::vectorized::VectorizedFnCall::execute 
(this=0x7fd6746a5800, context=0x7fd67461b980, block=0x7fd7b7208880, 
result_column_id=0x7fd7b720884c)
       at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/exprs/vectorized_fn_call.cpp:109
   #8  0x000055a690012378 in doris::vectorized::VExprContext::execute 
(result_column_id=0x7fd7b720884c, block=0x7fd7b7208880, this=0x7fd67461b980)
       at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/exprs/vexpr_context.cpp:46
   #9  doris::vectorized::VExprContext::get_output_block_after_execute_exprs 
(output_vexpr_ctxs=..., input_block=..., status=...) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/exprs/vexpr_context.cpp:148
   #10 0x000055a6929fbb0a in 
doris::vectorized::VMysqlResultWriter::append_block (this=0x7fd6746021a0, 
input_block=...) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/sink/vmysql_result_writer.cpp:457
   #11 0x000055a6929f6b80 in doris::vectorized::VResultSink::send 
(this=0x7fd6745d1aa0, state=<optimized out>, block=0x7fd674602240) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/vec/sink/vresult_sink.cpp:95
   #12 0x000055a68dc29801 in 
doris::PlanFragmentExecutor::open_vectorized_internal 
(this=this@entry=0x7fd6746c8080) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/runtime/plan_fragment_executor.cpp:322
   #13 0x000055a68dc2a7de in doris::PlanFragmentExecutor::open 
(this=this@entry=0x7fd6746c8080) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/runtime/plan_fragment_executor.cpp:261
   #14 0x000055a68dc02f30 in doris::FragmentExecState::execute 
(this=0x7fd6746c8000) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/runtime/fragment_mgr.cpp:260
   #15 0x000055a68dc0653e in 
doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, 
std::function<void (doris::PlanFragmentExecutor*)>) 
(this=this@entry=0x7fd887b90000, exec_state=..., cb=...)
       at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/shared_ptr_base.h:1290
   #16 0x000055a68dc06a72 in operator() (__closure=<optimized out>) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/runtime/fragment_mgr.cpp:737
   #17 std::__invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(const 
doris::TExecPlanFragmentParams&, 
doris::FragmentMgr::FinishCallback)::<lambda()>&> (__f=...)
       at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/invoke.h:61
   #18 std::__invoke_r<void, doris::FragmentMgr::exec_plan_fragment(const 
doris::TExecPlanFragmentParams&, 
doris::FragmentMgr::FinishCallback)::<lambda()>&> (__fn=...)
       at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/invoke.h:111
   #19 std::_Function_handler<void(), 
doris::FragmentMgr::exec_plan_fragment(const doris::TExecPlanFragmentParams&, 
doris::FragmentMgr::FinishCallback)::<lambda()> >::_M_invoke(const 
std::_Any_data &) (
       __functor=...) at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/std_function.h:291
   #20 0x000055a68debebc5 in std::function<void ()>::operator()() const 
(this=<optimized out>) at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/std_function.h:560
   #21 doris::FunctionRunnable::run (this=<optimized out>) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/util/threadpool.cpp:46
   #22 doris::ThreadPool::dispatch_thread (this=0x7fd877e51bc0) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/util/threadpool.cpp:535
   #23 0x000055a68deb401f in std::function<void ()>::operator()() const 
(this=0x7fd887b83df8) at 
/data/home/lambxu/installs/ldb_toolchain/include/c++/11/bits/std_function.h:560
   #24 doris::Thread::supervise_thread (arg=0x7fd887b83de0) at 
/data/home/lambxu/work/git/doris-1.2/doris/be/src/util/thread.cpp:454
   #25 0x00007fd8a0474ea5 in start_thread () from /lib64/libpthread.so.0
   #26 0x00007fd8a0787b0d in clone () from /lib64/libc.so.6
   ```
   
   other:
   
   ```
   (gdb) f 2
   #2  
doris::vectorized::FunctionsMultiStringSearch<doris::vectorized::FunctionMultiMatchAnyImpl<signed
 char, (doris::vectorized::MultiMatchTraits::Find)0, false> >::execute_impl 
(this=0x7fd674624000, 
       context=<optimized out>, block=..., arguments=..., result=5, 
input_rows_count=1) 
   (gdb) p col_needles_vector
   $1 = (const doris::vectorized::ColumnArray *) 0x0
   (gdb) p col_needles_const
   $2 = (const doris::vectorized::ColumnConst *) 0x0
   (gdb) p *(*(doris::vectorized::ColumnConst*)needles_ptr.t).data.value.t
   $3 = {<COW<doris::vectorized::IColumn>> = {ref_counter = 
{<std::__atomic_base<unsigned int>> = {static _S_alignment = 4, _M_i = 1}, 
static is_always_lock_free = true}}, 
     _vptr.IColumn = 0x55a695a19390 <vtable for 
doris::vectorized::ColumnNullable+16>, is_date = false, is_date_time = false, 
is_decimalv2 = false}
   (gdb) p 
(doris::vectorized::ColumnString*)(*((doris::vectorized::ColumnNullable*)(*((doris::vectorized::ColumnArray*)(*(doris::vectorized::ColumnNullable*)(*((doris::vectorized::ColumnConst*)needles_ptr.t)).data.value.t).nested_column.value.t)).data.value.t)).nested_column.value.t
   ```
   
   ### What You Expected?
   
   work
   
   ### How to Reproduce?
   
   1、create table
   
   ```
   CREATE TABLE bak
   (
       `col1`      INT NOT NULL,
       `content`   TEXT NULL,
       `mode`      ARRAY<TEXT> NULL
   ) ENGINE=OLAP
   DUPLICATE KEY(`col1`)
   COMMENT 'OLAP'
   DISTRIBUTED BY HASH(`col1`) BUCKETS 3
   PROPERTIES (
   "replication_allocation" = "tag.location.default: 1",
   "in_memory" = "false",
   "storage_format" = "V2"
   );
   ```
   
   2、insert data
   
   ```
   INSERT INTO bak (col1, content, mode) VALUES
               (1, 'Hello, World!', ['hello', 'world'] ),
               (2, 'Hello, World!', ['hello', 'world', 'Hello', '!'] ),
               (3, 'hello, world!', ['Hello', 'world'] ),
               (4, 'hello, world!', ['hello', 'world', 'Hello', '!'] ),
               (5, 'HHHHW!', ['H', 'HHHH', 'HW', 'WH'] ),
               (6, 'abc', null),
               (7, null, null),
               (8, null, ['a', 'b', 'c']);
   ```
   
   3、execute sql
   
   ```
   select multi_match_any(content, 'hello') from bak order by col1;
   
   or 
   
   select multi_match_any(content, '[hello]') from bak order by col1
   ```
   
   ### 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