You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by "xy720 (via GitHub)" <gi...@apache.org> on 2024/02/23 05:29:46 UTC

[I] [bug] unexpected be core in string search function [doris]

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-unsubscribe@doris.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org


Re: [I] [bug] unexpected be core in string search function [doris]

Posted by "xy720 (via GitHub)" <gi...@apache.org>.
xy720 closed issue #31311: [bug] unexpected be core in string search function
URL: https://github.com/apache/doris/issues/31311


-- 
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-unsubscribe@doris.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org