You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2022/12/20 07:31:09 UTC

[GitHub] [doris] deardeng opened a new issue, #15200: [Bug] doris::simd::VStringFunctions::reverse coredump

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

   ### 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
   
   master https://github.com/apache/doris/commit/fdb54a346d854b6665cb2631639ba8f04b5dee14
   
   ### What's Wrong?
   
   The following sql cause BE coredump:
   ```
   SELECT /*+ SET_VAR(query_timeout = 600) */ reverse(CAST(repeat(CAST(ref_0.`d_yearmonth` AS varchar), CAST(ref_0.`d_datekey` AS int)) AS varchar)) AS c0, max(CAST(ref_0.`d_lastdayinweekfl` AS int)) OVER (PARTITION BY ref_0.`d_daynuminyear`, ref_0.`d_sellingseason` ORDER BY ref_0.`d_lastdayinmonthfl`, ref_0.`d_daynuminyear`) AS c1
   	, ref_0.`d_monthnuminyear` AS c2
   FROM regression_test_ssb_unique_load_zstd_p0_load_four_step.date ref_0
   WHERE true
   ```
   
   coredump:
   ```
   start time: Tue 20 Dec 2022 02:30:07 PM CST
   *** Query id: 648ee38a20a14f67-b8ac5691d88614ac ***
   *** Aborted at 1671519461 (unix time) try "date -d @1671519461" if you are using GNU date ***
   *** Current BE git commitID: 494eb895d ***
   *** SIGSEGV invalid permissions for mapped object (@0x7fc0ce62efff) received by PID 685667 (TID 0x7fc0cee2e700) from PID 18446744072877174783; stack trace: ***
    0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_master/doris/be/src/common/signal_handler.h:420
    1# 0x00007FC1EA729BF9 in /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/libjvm.so
    2# JVM_handle_linux_signal in /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/libjvm.so
    3# 0x00007FC1EA72293C in /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/libjvm.so
    4# 0x00007FC1F08540C0 in /lib/x86_64-linux-gnu/libc.so.6
    5# doris::simd::VStringFunctions::reverse(doris_udf::StringVal const&, doris_udf::StringVal) at /home/zcp/repo_center/doris_master/doris/be/src/util/simd/vstring_function.h:143
    6# doris::vectorized::ReverseImpl::vector(doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, doris::vectorized::PODArray<unsigned int, 4096ul, Allocator<false, false>, 15ul, 16ul> const&, doris::vectorized::PODArray<unsigned char, 4096ul, Allocator<false, false>, 15ul, 16ul>&, doris::vectorized::PODArray<unsigned int, 4096ul, Allocator<false, false>, 15ul, 16ul>&) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function_string.h:2168
    7# doris::vectorized::FunctionReverseCommon::execute_impl(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function_reverse.h:52
    8# doris::vectorized::DefaultExecutable::execute_impl(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function.h:465
    9# doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function.cpp:251
   10# doris::vectorized::PreparedFunctionImpl::default_implementation_for_nulls(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool, bool*) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function.cpp:221
   11# doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function.cpp:242
   12# doris::vectorized::PreparedFunctionImpl::execute(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function.cpp:273
   13# doris::vectorized::IFunctionBase::execute(doris_udf::FunctionContext*, doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long, unsigned long, bool) at /home/zcp/repo_center/doris_master/doris/be/src/vec/functions/function.h:136
   14# doris::vectorized::VectorizedFnCall::execute(doris::vectorized::VExprContext*, doris::vectorized::Block*, int*) at /home/zcp/repo_center/doris_master/doris/be/src/vec/exprs/vectorized_fn_call.cpp:107
   15# doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) at /home/zcp/repo_center/doris_master/doris/be/src/vec/exprs/vexpr_context.cpp:44
   16# doris::vectorized::VExprContext::get_output_block_after_execute_exprs(std::vector<doris::vectorized::VExprContext*, std::allocator<doris::vectorized::VExprContext*> > const&, doris::vectorized::Block const&, doris::Status&) at /home/zcp/repo_center/doris_master/doris/be/src/vec/exprs/vexpr_context.cpp:143
   17# doris::vectorized::VMysqlResultWriter::append_block(doris::vectorized::Block&) at /home/zcp/repo_center/doris_master/doris/be/src/vec/sink/vmysql_result_writer.cpp:431
   18# doris::vectorized::VResultSink::send(doris::RuntimeState*, doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_master/doris/be/src/vec/sink/vresult_sink.cpp:96
   19# doris::PlanFragmentExecutor::open_vectorized_internal() at /home/zcp/repo_center/doris_master/doris/be/src/runtime/plan_fragment_executor.cpp:311
   20# doris::PlanFragmentExecutor::open() at /home/zcp/repo_center/doris_master/doris/be/src/runtime/plan_fragment_executor.cpp:250
   21# doris::FragmentExecState::execute() at /home/zcp/repo_center/doris_master/doris/be/src/runtime/fragment_mgr.cpp:250
   22# doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::RuntimeState*, doris::Status*)>) at /home/zcp/repo_center/doris_master/doris/be/src/runtime/fragment_mgr.cpp:490
   23# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::{lambda()#1}::operator()() const at /home/zcp/repo_center/doris_master/doris/be/src/runtime/fragment_mgr.cpp:725
   24# 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 /var/local/ldb_toolchain/include/c++/11/bits/invoke.h:61
   25# 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 /var/local/ldb_toolchain/include/c++/11/bits/invoke.h:117
   26# 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 /var/local/ldb_toolchain/include/c++/11/bits/std_function.h:292
   27# std::function<void ()>::operator()() const at /var/local/ldb_toolchain/include/c++/11/bits/std_function.h:560
   28# doris::FunctionRunnable::run() at /home/zcp/repo_center/doris_master/doris/be/src/util/threadpool.cpp:46
   29# doris::ThreadPool::dispatch_thread() at /home/zcp/repo_center/doris_master/doris/be/src/util/threadpool.cpp:543
   30# void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) at /var/local/ldb_toolchain/include/c++/11/bits/invoke.h:74
   31# std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) at /var/local/ldb_toolchain/include/c++/11/bits/invoke.h:97
   32# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at /var/local/ldb_toolchain/include/c++/11/functional:422
   33# void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() at /var/local/ldb_toolchain/include/c++/11/functional:505
   34# void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) at /var/local/ldb_toolchain/include/c++/11/bits/invoke.h:61
   35# 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 /var/local/ldb_toolchain/include/c++/11/bits/invoke.h:117
   36# std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) at /var/local/ldb_toolchain/include/c++/11/bits/std_function.h:292
   37# std::function<void ()>::operator()() const at /var/local/ldb_toolchain/include/c++/11/bits/std_function.h:560
   38# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_master/doris/be/src/util/thread.cpp:455
   39# start_thread at /build/glibc-sMfBJT/glibc-2.31/nptl/pthread_create.c:478
   40# __clone in /lib/x86_64-linux-gnu/libc.so.6
   ```
   
   ### What You Expected?
   
   no core
   
   ### How to Reproduce?
   
   _No response_
   
   ### 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