-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
0 - CriticalCritical to project, highest priorityCritical to project, highest priority
Description
Bug report
I was playing around with navigation stack with default, out of the box planners, behavior trees, etc. and I got a seg fault when passing a goal while shuttle was already executing one.
Required Info:
- Operating System:
- Ubuntu 18.04
- Version or commit hash:
- DDS implementation:
- CycloneDDS
Steps to reproduce issue
Don't know it exactly anymore, but it was something like this:
- Let shuttle move to a goal.
- While executing pass it another goal.
- Then the error may occurred during recovery
Expected behavior
No seg fault, some error output
Actual behavior
Segmentation fault
Additional information
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f582d35f515 in BT::CoroActionNode::executeTick() () from /opt/ros/eloquent/lib/libbehaviortree_cpp_v3.so
[Current thread is 1 (Thread 0x7f5819826700 (LWP 15978))]
(gdb) bt
#0 0x00007f582d35f515 in BT::CoroActionNode::executeTick() () from /opt/ros/eloquent/lib/libbehaviortree_cpp_v3.so
#1 0x00007f5819c39dd0 in nav2_behavior_tree::RecoveryNode::tick (this=0x557d05ba2a10) at /home/kin/playground_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp:72
#2 0x00007f582d374f5f in BT::TreeNode::executeTick() () from /opt/ros/eloquent/lib/libbehaviortree_cpp_v3.so
#3 0x00007f5819a30e3b in nav2_behavior_tree::PipelineSequence::tick (this=0x557d05b7c210) at /home/kin/playground_ws/src/navigation2/nav2_behavior_tree/plugins/control/pipeline_sequence.cpp:82
#4 0x00007f582d374f5f in BT::TreeNode::executeTick() () from /opt/ros/eloquent/lib/libbehaviortree_cpp_v3.so
#5 0x00007f5819c39dd0 in nav2_behavior_tree::RecoveryNode::tick (this=0x557d05b6a250) at /home/kin/playground_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp:72
#6 0x00007f582d374f5f in BT::TreeNode::executeTick() () from /opt/ros/eloquent/lib/libbehaviortree_cpp_v3.so
#7 0x00007f5829e99689 in nav2_behavior_tree::BehaviorTreeEngine::run(std::unique_ptr<BT::Tree, std::default_delete<BT::Tree> >&, std::function<void ()>, std::function<bool ()>, std::chrono::duration<long, std::ratio<1l, 1000l> >) (this=<optimized out>, tree=std::unique_ptr<BT::Tree> = {...}, onLoop=..., cancelRequested=..., loopTimeout=..., loopTimeout@entry=...)
at /home/kin/playground_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:56
#8 0x00007f582c949a3b in nav2_bt_navigator::BtNavigator::navigateToPose (this=0x557d059ba7c0) at /home/kin/playground_ws/src/navigation2/nav2_bt_navigator/src/bt_navigator.cpp:219
#9 0x00007f582c95ca06 in std::function<void ()>::operator()() const (this=0x557d05b6a460) at /usr/include/c++/7/bits/std_function.h:706
#10 nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::work (this=0x557d05b6a400) at /home/kin/playground_ws/install/nav2_util/include/nav2_util/simple_action_server.hpp:143
#11 0x00007f582c95d08c in nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}::operator()() const (__closure=<optimized out>) at /home/kin/playground_ws/install/nav2_util/include/nav2_util/simple_action_server.hpp:134
#12 std::__invoke_impl<void, nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}>(std::__invoke_other, nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}&&) (__f=...) at /usr/include/c++/7/bits/invoke.h:60
#13 std::__invoke<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}>(std::__invoke_result&&, (nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}&&)...) (__fn=...) at /usr/include/c++/7/bits/invoke.h:95
#14 std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=<optimized out>) at /usr/include/c++/7/thread:234
#15 std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >::operator()() (this=<optimized out>) at /usr/include/c++/7/thread:243
#16 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >, void>::operator()() const (this=0x7f5819824e40)
at /usr/include/c++/7/future:1362
#17 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >, void> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/7/bits/std_function.h:302
#18 0x00007f582d354a79 in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) ()
from /opt/ros/eloquent/lib/libbehaviortree_cpp_v3.so
#19 0x00007f582bd5a827 in __pthread_once_slow (once_control=0x7f57fc0172b8, init_routine=0x7f582c62f830 <__once_proxy>) at pthread_once.c:116
#20 0x00007f582c950c1c in __gthread_once (__func=<optimized out>, __once=0x7f57fc0172b8) at /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:699
#21 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__f=
@0x7f5819824e10: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f582d354a50 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>, __once=...)
at /usr/include/c++/7/mutex:684
#22 std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (__ignore_failure=false, __res=...,
this=0x7f57fc0172a0) at /usr/include/c++/7/future:401
#23 std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >, void>::_Async_state_impl(std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}>&&)::{lambda()#1}::operator()() const (__closure=0x557d05b019b8) at /usr/include/c++/7/future:1667
#24 std::__invoke_impl<void, std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >, void>::_Async_state_impl(std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}>&&)::{lambda()#1}>(std::__invoke_other, std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}> >, void>::_Async_state_impl(std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose, rclcpp::Node>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::{lambda()#1}>&&)::{lambda()#1}&&) (
__f=...) at /usr/include/c++/7/bits/invoke.h:60
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
0 - CriticalCritical to project, highest priorityCritical to project, highest priority