yiguolei opened a new pull request, #18134:
URL: https://github.com/apache/doris/pull/18134

   # Proposed changes
   
   VExprContext is not normally closed, so it will core during deconstructor. 
Could not find the reason, so that I add a log to ExecNode's close method.
   
   ## Problem summary
   
   0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, 
siginfo_t*, void*) at 
/home/zcp/repo_center/doris_master/doris/be/src/common/signal_handler.h:413
    1# 0x00007F787A11A090 in /lib/x86_64-linux-gnu/libc.so.6
    2# raise at ../sysdeps/unix/sysv/linux/raise.c:51
    3# abort at /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81
    4# 0x00005654B4AA3059 in /mnt/ssd01/doris-master/VEC_ASAN/be/lib/doris_be
    5# 0x00005654B4A9866D in /mnt/ssd01/doris-master/VEC_ASAN/be/lib/doris_be
    6# google::LogMessage::SendToLog() in 
/mnt/ssd01/doris-master/VEC_ASAN/be/lib/doris_be
    7# google::LogMessage::Flush() in 
/mnt/ssd01/doris-master/VEC_ASAN/be/lib/doris_be
    8# google::LogMessageFatal::~LogMessageFatal() in 
/mnt/ssd01/doris-master/VEC_ASAN/be/lib/doris_be
    9# doris::vectorized::VExprContext::~VExprContext() at 
/home/zcp/repo_center/doris_master/doris/be/src/vec/exprs/vexpr_context.cpp:36
   10# 
doris::ObjectPool::add<doris::vectorized::VExprContext>(doris::vectorized::VExprContext*)::{lambda(void*)#1}::operator()(void*)
 const at 
/home/zcp/repo_center/doris_master/doris/be/src/common/object_pool.h:40
   11# 
doris::ObjectPool::add<doris::vectorized::VExprContext>(doris::vectorized::VExprContext*)::{lambda(void*)#1}::__invoke(void*)
 at /home/zcp/repo_center/doris_master/doris/be/src/common/object_pool.h:40
   12# doris::ObjectPool::clear() at 
/home/zcp/repo_center/doris_master/doris/be/src/common/object_pool.h:53
   13# doris::RuntimeState::~RuntimeState() at 
/home/zcp/repo_center/doris_master/doris/be/src/runtime/runtime_state.cpp:181
   14# 
std::default_delete<doris::RuntimeState>::operator()(doris::RuntimeState*) 
const at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85
   15# std::unique_ptr<doris::RuntimeState, 
std::default_delete<doris::RuntimeState> >::~unique_ptr() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:361
   16# doris::PlanFragmentExecutor::~PlanFragmentExecutor() at 
/home/zcp/repo_center/doris_master/doris/be/src/runtime/plan_fragment_executor.cpp:75
   17# doris::FragmentExecState::~FragmentExecState() at 
/home/zcp/repo_center/doris_master/doris/be/src/runtime/fragment_mgr.cpp:80
   18# std::Sp_counted_ptr<doris::FragmentExecState*, 
(_gnu_cxx::_Lock_policy)2>::_M_dispose() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:348
   19# std::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:168
   20# std::_shared_count<(gnu_cxx::_Lock_policy)2>::~_shared_count() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:703
   21# std::_shared_ptr<doris::FragmentExecState, 
(gnu_cxx::_Lock_policy)2>::~_shared_ptr() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149
   22# std::shared_ptr<doris::FragmentExecState>::~shared_ptr() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:122
   23# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams 
const&, std::function<void (doris::RuntimeState*, doris::Status*)> 
const&)::$_3::~$_3() at 
/home/zcp/repo_center/doris_master/doris/be/src/runtime/fragment_mgr.cpp:723
   24# 
std::_Function_base::_Base_manager<doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams
 const&, std::function<void (doris::RuntimeState*, doris::Status*)> 
const&)::$_3>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) 
at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:174
   25# 
std::_Function_base::_Base_manager<doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams
 const&, std::function<void (doris::RuntimeState*, doris::Status*)> 
const&)::$_3>::_M_manager(std::_Any_data&, std::_Any_data const&, 
std::_Manager_operation) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:202
   26# std::_Function_handler<void (), 
doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, 
std::function<void (doris::RuntimeState*, doris::Status*)> 
const&)::$_3>::_M_manager(std::_Any_data&, std::_Any_data const&, 
std::_Manager_operation) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:284
   27# std::_Function_base::~_Function_base() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:245
   28# std::function<void ()>::~function() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:111
   29# doris::FunctionRunnable::~FunctionRunnable() at 
/home/zcp/repo_center/doris_master/doris/be/src/util/threadpool.cpp:42
   30# void 
__gnu_cxx::new_allocator<doris::FunctionRunnable>::destroy<doris::FunctionRunnable>(doris::FunctionRunnable*)
 at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:162
   31# void std::allocator_traits<std::allocator<doris::FunctionRunnable> 
>::destroy<doris::FunctionRunnable>(std::allocator<doris::FunctionRunnable>&, 
doris::FunctionRunnable*) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:535
   32# std::Sp_counted_ptr_inplace<doris::FunctionRunnable, 
std::allocator<doris::FunctionRunnable>, 
(_gnu_cxx::_Lock_policy)2>::_M_dispose() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:529
   33# std::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:168
   34# std::_shared_count<(gnu_cxx::_Lock_policy)2>::~_shared_count() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:703
   35# std::_shared_ptr<doris::Runnable, 
(gnu_cxx::_Lock_policy)2>::~_shared_ptr() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149
   36# std::_shared_ptr<doris::Runnable, (_gnu_cxx::_Lock_policy)2>::reset() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1267
   37# doris::ThreadPool::dispatch_thread() at 
/home/zcp/repo_center/doris_master/doris/be/src/util/threadpool.cpp:537
   38# void std::_invoke_impl<void, void (doris::ThreadPool::&)(), 
doris::ThreadPool&>(std::_invoke_memfun_deref, void (doris::ThreadPool::&)(), 
doris::ThreadPool&) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74
   39# 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/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96
   40# void std::Bind<void 
(doris::ThreadPool::(doris::ThreadPool))()>::_call<void, , 0ul>(std::tuple<>&&, 
std::_Index_tuple<0ul>) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420
   41# void std::_Bind<void 
(doris::ThreadPool::(doris::ThreadPool))()>::operator()<, void>() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503
   42# 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/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61
   
   ## Checklist(Required)
   
   * [ ] Does it affect the original behavior
   * [ ] Has unit tests been added
   * [ ] Has document been added or modified
   * [ ] Does it need to update dependencies
   * [ ] Is this PR support rollback (If NO, please explain WHY)
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at 
[[email protected]](mailto:[email protected]) by explaining why you 
chose the solution you did and what alternatives you considered, etc...
   
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to