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 2023/01/13 07:51:13 UTC

[GitHub] [doris] BiteTheDDDDt opened a new pull request, #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

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

   # Proposed changes
   
   ```sql
   select bitmap_union(to_bitmap_with_check(k2)) from d_table;
   ```
   
   ```cpp
   ==2835555==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6140001a0208 at pc 0x558623df84ee bp 0x7f167601d630 sp 0x7f167601d628
   READ of size 8 at 0x6140001a0208 thread T234 (FragmentMgrThre)
       #0 0x558623df84ed in COW<doris::vectorized::IColumn>::intrusive_ptr<doris::vectorized::IColumn const>::operator->() const /mnt/disk1/xiaolei/incubator-doris/be/src/vec/common/cow.h:208:40
       #1 0x55862924831b in doris::vectorized::Block::replace_by_position_if_const(unsigned long) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/core/block.h:146:26
       #2 0x55862c9584d6 in void doris::vectorized::materialize_block_inplace<int*>(doris::vectorized::Block&, int*, int*) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/core/materialize_block.h:35:15
       #3 0x55862c9502a5 in doris::vectorized::AggFnEvaluator::_calc_argment_columns(doris::vectorized::Block*) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/exprs/vectorized_agg_fn.cpp:231:5
       #4 0x55862c9506d7 in doris::vectorized::AggFnEvaluator::execute_batch_add(doris::vectorized::Block*, unsigned long, char**, doris::vectorized::Arena*, bool) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/exprs/vectorized_agg_fn.cpp:164:5
       #5 0x558628e78725 in doris::Status doris::vectorized::AggregationNode::_execute_with_serialized_key_helper<false>(doris::vectorized::Block*) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/exec/vaggregation_node.h:939:43
       #6 0x558628cfbe55 in doris::vectorized::AggregationNode::_execute_with_serialized_key(doris::vectorized::Block*) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/exec/vaggregation_node.cpp:1127:16
       #7 0x558628f03f1e in doris::Status std::__invoke_impl<doris::Status, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*>(std::__invoke_memfun_deref, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*&&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14
       #8 0x558628f03d5f in std::enable_if<is_invocable_r_v<doris::Status, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*>, doris::Status>::type std::__invoke_r<doris::Status, doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*>(doris::Status (doris::vectorized::AggregationNode::*&)(doris::vectorized::Block*), doris::vectorized::AggregationNode*&, doris::vectorized::Block*&&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114:9
       #9 0x558628f03c98 in doris::Status std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>::__call<doris::Status, doris::vectorized::Block*&&, 0ul, 1ul>(std::tuple<doris::vectorized::Block*&&>&&, std::_Index_tuple<0ul, 1ul>) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:570:11
       #10 0x558628f03aec in doris::Status std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>::operator()<doris::vectorized::Block*>(doris::vectorized::Block*&&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:629:17
       #11 0x558628f039d7 in doris::Status std::__invoke_impl<doris::Status, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*>(std::__invoke_other, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*&&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
       #12 0x558628f03957 in std::enable_if<is_invocable_r_v<doris::Status, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*>, doris::Status>::type std::__invoke_r<doris::Status, std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*>(std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>&, doris::vectorized::Block*&&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:114:9
       #13 0x558628f037a7 in std::_Function_handler<doris::Status (doris::vectorized::Block*), std::_Bind_result<doris::Status, doris::Status (doris::vectorized::AggregationNode::* (doris::vectorized::AggregationNode*, std::_Placeholder<1>))(doris::vectorized::Block*)>>::_M_invoke(std::_Any_data const&, doris::vectorized::Block*&&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
       #14 0x558628e75d43 in std::function<doris::Status (doris::vectorized::Block*)>::operator()(doris::vectorized::Block*) const /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
       #15 0x558628d02b76 in doris::vectorized::AggregationNode::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/exec/vaggregation_node.cpp:564:9
       #16 0x558628d02712 in doris::vectorized::AggregationNode::open(doris::RuntimeState*) /mnt/disk1/xiaolei/incubator-doris/be/src/vec/exec/vaggregation_node.cpp:500:9
       #17 0x558625872e80 in doris::PlanFragmentExecutor::open_vectorized_internal() /mnt/disk1/xiaolei/incubator-doris/be/src/runtime/plan_fragment_executor.cpp:267:9
       #18 0x5586258706a6 in doris::PlanFragmentExecutor::open() /mnt/disk1/xiaolei/incubator-doris/be/src/runtime/plan_fragment_executor.cpp:242:14
       #19 0x5586257dc964 in doris::FragmentExecState::execute() /mnt/disk1/xiaolei/incubator-doris/be/src/runtime/fragment_mgr.cpp:250:9
       #20 0x5586257e11e6 in doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::RuntimeState*, doris::Status*)>) /mnt/disk1/xiaolei/incubator-doris/be/src/runtime/fragment_mgr.cpp:490:17
       #21 0x5586257f742b in doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3::operator()() const /mnt/disk1/xiaolei/incubator-doris/be/src/runtime/fragment_mgr.cpp:740:21
       #22 0x5586257f72b4 in void std::__invoke_impl<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3&>(std::__invoke_other, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
       #23 0x5586257f7254 in std::enable_if<is_invocable_r_v<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3&>, void>::type std::__invoke_r<void, doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3&>(doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
       #24 0x5586257f700c in std::_Function_handler<void (), doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams const&, std::function<void (doris::RuntimeState*, doris::Status*)>)::$_3>::_M_invoke(std::_Any_data const&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
       #25 0x558625aa00b2 in std::function<void ()>::operator()() const /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
       #26 0x558625f370a8 in doris::FunctionRunnable::run() /mnt/disk1/xiaolei/incubator-doris/be/src/util/threadpool.cpp:46:27
       #27 0x558625f23d0b in doris::ThreadPool::dispatch_thread() /mnt/disk1/xiaolei/incubator-doris/be/src/util/threadpool.cpp:535:24
       #28 0x558625f4a9f3 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14
       #29 0x558625f4a8cc in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
       #30 0x558625f4a854 in void std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>::__call<void, 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420:11
       #31 0x558625f4a6fd in void std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>::operator()<void>() /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503:17
       #32 0x558625f4a614 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
       #33 0x558625f4a5b4 in 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*))()>&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
       #34 0x558625f4a25c in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::* (doris::ThreadPool*))()>>::_M_invoke(std::_Any_data const&) /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
       #35 0x558625aa00b2 in std::function<void ()>::operator()() const /mnt/disk1/xiaolei/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
       #36 0x558625efc47e in doris::Thread::supervise_thread(void*) /mnt/disk1/xiaolei/incubator-doris/be/src/util/thread.cpp:453:5
       #37 0x7f178ed33179 in start_thread pthread_create.c
       #38 0x7f178f5cddf2 in clone (/lib64/libc.so.6+0xfcdf2) (BuildId: 20ee73ce1b6ac38a52440bab82ec7e28f0f5c5b9)
   ```
   
   ## Problem summary
   
   Describe your changes.
   
   ## Checklist(Required)
   
   1. Does it affect the original behavior: 
       - [ ] Yes
       - [ ] No
       - [ ] I don't know
   2. Has unit tests been added:
       - [ ] Yes
       - [ ] No
       - [ ] No Need
   3. Has document been added or modified:
       - [ ] Yes
       - [ ] No
       - [ ] No Need
   4. Does it need to update dependencies:
       - [ ] Yes
       - [ ] No
   5. Are there any changes that cannot be rolled back:
       - [ ] Yes (If Yes, please explain WHY)
       - [ ] No
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at [dev@doris.apache.org](mailto:dev@doris.apache.org) 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: 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


[GitHub] [doris] hello-stephen commented on pull request #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

Posted by GitBox <gi...@apache.org>.
hello-stephen commented on PR #15903:
URL: https://github.com/apache/doris/pull/15903#issuecomment-1381705301

   TeamCity pipeline, clickbench performance test result:
    the sum of best hot time: 36.27 seconds
    load time: 493 seconds
    storage size: 17123070984 Bytes
    https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230113111951_clickbench_pr_79713.html


-- 
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


[GitHub] [doris] github-actions[bot] commented on pull request #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #15903:
URL: https://github.com/apache/doris/pull/15903#issuecomment-1381686865

   clang-tidy review says "All clean, LGTM! :+1:"


-- 
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


[GitHub] [doris] BiteTheDDDDt commented on pull request #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

Posted by GitBox <gi...@apache.org>.
BiteTheDDDDt commented on PR #15903:
URL: https://github.com/apache/doris/pull/15903#issuecomment-1382663959

   > The work maybe cause auto SIMD failed, please check assemble code and test performance to do the work
   
   This change is mainly to accept the return value of `expr->execute` in `_calc_argment_columns`. The call to `execute` itself will have overhead. I think that processing its return value will not affect performance.


-- 
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


[GitHub] [doris] github-actions[bot] commented on pull request #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #15903:
URL: https://github.com/apache/doris/pull/15903#issuecomment-1381445252

   PR approved by at least one committer and no changes requested.


-- 
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


[GitHub] [doris] github-actions[bot] commented on pull request #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on PR #15903:
URL: https://github.com/apache/doris/pull/15903#issuecomment-1381445287

   PR approved by anyone and no changes requested.


-- 
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


[GitHub] [doris] HappenLee merged pull request #15903: [Bug](function) catch function calculation error on aggregate node to avoid core dump

Posted by GitBox <gi...@apache.org>.
HappenLee merged PR #15903:
URL: https://github.com/apache/doris/pull/15903


-- 
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