autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
968 stars 631 forks source link

Out-of-range access in `obstacle_stop_planner::insertSlowDownSection` #2374

Open VRichardJP opened 1 year ago

VRichardJP commented 1 year ago

Checklist

Description

While using the slow down planner to increase ACC detection range (see https://github.com/autowarefoundation/autoware.universe/issues/2262), we experienced multiple crash due to out-of-range accesses in obstacle_stop_planner::insertSlowDownSection. It happened most often after during obstacle avoidance maneuver.

We added the following snippet to detect the issue, and the node stopped crashing:

diff --git a/planning/obstacle_stop_planner/src/node.cpp b/planning/obstacle_stop_planner/src/node.cpp
index 2d26ce7b3..d993c0b32 100644
--- a/planning/obstacle_stop_planner/src/node.cpp
+++ b/planning/obstacle_stop_planner/src/node.cpp
@@ -756,6 +756,33 @@ void ObstacleStopPlannerNode::insertSlowDownSection(
   const auto & start_idx = slow_down_section.slow_down_start_idx;
   const auto & end_idx = slow_down_section.slow_down_end_idx;

+  // for debug
+  if(start_idx >= output.size())
+  {
+    RCLCPP_ERROR(get_logger(), "start_idx >= output.size() (%lu, %lu)",
+      start_idx, output.size());
+    return;
+  }
+  if(std::min(start_idx + 1, traj_end_idx) >= output.size())
+  {
+    RCLCPP_ERROR(get_logger(), "std::min(start_idx + 1, traj_end_idx) >= output.size() (%lu, %lu)",
+      std::min(start_idx + 1, traj_end_idx), output.size());
+    return;
+  }
+  if(end_idx >= output.size())
+  {
+    RCLCPP_ERROR(get_logger(), "end_idx >= output.size() (%lu, %lu)",
+      end_idx, output.size());
+    return;
+  }
+  if(std::min(end_idx + 1, traj_end_idx) >= output.size())
+  {
+    RCLCPP_ERROR(get_logger(), "std::min(end_idx + 1, traj_end_idx) >= output.size() (%lu, %lu)",
+      std::min(end_idx + 1, traj_end_idx), output.size());
+    return;
+  }
+
+
   const auto p_base_start = output.at(start_idx);
   const auto p_next_start = output.at(std::min(start_idx + 1, traj_end_idx));
   const auto & p_insert_start = slow_down_section.start_point;

However, we now see several of the added error messages appear from time to time in the logs. For example: Screenshot from 2022-11-17 16-03-20

Example of backtrace when the crash occurs (before the changes):

[INFO] [1668673327.955292305] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: Replan with resetting optimization since path shape was changed.
[INFO] [1668673329.745063671] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: Replan with resetting optimization since path shape was changed.
[INFO] [1668673330.634366514] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: Replan with resetting optimization since path shape was changed.
[INFO] [1668673364.590127236] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: [Avoidance] Not extend trajectory
[INFO] [1668673374.641078530] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: [Avoidance] Not extend trajectory
[INFO] [1668673384.671440235] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: [Avoidance] Not extend trajectory
[INFO] [1668673394.756116096] [planning.scenario_planning.lane_driving.motion_planning.obstacle_avoidance_planner]: [Avoidance] Not extend trajectory
[WARN] [1668673411.718066140] [planning.scenario_planning.lane_driving.motion_planning.obstacle_stop_planner]: size of vel que is 0. Something has wrong.
[WARN] [1668673411.817246888] [planning.scenario_planning.lane_driving.motion_planning.obstacle_stop_planner]: size of vel que is 0. Something has wrong.
[WARN] [1668673434.463485101] [planning.scenario_planning.lane_driving.motion_planning.obstacle_stop_planner]: size of vel que is 0. Something has wrong.
[WARN] [1668673434.647350688] [planning.scenario_planning.lane_driving.motion_planning.obstacle_stop_planner]: size of vel que is 0. Something has wrong.
[WARN] [1668673434.687731847] [planning.scenario_planning.lane_driving.motion_planning.obstacle_stop_planner]: size of vel que is 0. Something has wrong.
[WARN] [1668673435.664530239] [planning.scenario_planning.lane_driving.motion_planning.obstacle_stop_planner]: size of vel que is 0. Something has wrong.
terminate called after throwing an instance of 'std::out_of_range'
  what():  vector::_M_range_check: __n (which is 673) >= this->size() (which is 624)
--Type <RET> for more, q to quit, c to continue without paging--

Thread 13 "component_conta" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe4ff9700 (LWP 107500)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7941859 in __GI_abort () at abort.c:79
#2  0x00007ffff7bca911 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff7bd638c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff7bd63f7 in std::terminate() ()
   from /lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff7bd66a9 in __cxa_throw ()
   from /lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff7bcd3ab in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007fffd24ffe1c in std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint_<std::allocator<void> >, std::allocator<autoware_auto_planning_msgs::msg::TrajectoryPoint_<std::allocator<void> > > >::_M_range_check (
    this=0x7fffe4ff6600, __n=673) at /usr/include/c++/9/bits/stl_vector.h:1070
#8  0x00007fffd24f7fc7 in std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint_<std::allocator<void> >, std::allocator<autoware_auto_planning_msgs::msg::TrajectoryPoint_<std::allocator<void> > > >::at (this=0x7fffe4ff6600, 
    __n=673) at /usr/include/c++/9/bits/stl_vector.h:1091
#9  0x00007fffd24e73e1 in motion_planning::ObstacleStopPlannerNode::insertSlowDownSection (this=0x7fffbc023c70, slow_down_section=..., 
    output=std::vector of length 624, capacity 624 = {...})
    at /home/byd/autoware/src/universe/autoware.universe/planning/obstacle_stop_planner/src/node.cpp:763
#10 0x00007fffd24e5c09 in motion_planning::ObstacleStopPlannerNode::insertVeloci--Type <RET> for more, q to quit, c to continue without paging--
ty (this=0x7fffbc023c70, 
    output=std::vector of length 624, capacity 624 = {...}, planner_data=..., 
    trajectory_header=..., vehicle_info=..., current_acc=-0.44493220400320144, 
    current_vel=4.6468372680661849, stop_param=...)
    at /home/byd/autoware/src/universe/autoware.universe/planning/obstacle_stop_planner/src/node.cpp:567
#11 0x00007fffd24e3ce9 in motion_planning::ObstacleStopPlannerNode::onTrigger (
    this=0x7fffbc023c70, 
    input_msg=std::shared_ptr<const struct autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >> (use count 4, weak count 0) = {...})
    at /home/byd/autoware/src/universe/autoware.universe/planning/obstacle_stop_planner/src/node.cpp:302
#12 0x00007fffd25750e0 in std::__invoke_impl<void, void (motion_planning::ObstacleStopPlannerNode::*&)(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>), motion_planning::ObstacleStopPlannerNode*&, std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const> > (__f=
    @0x7fffbc151250: (void (motion_planning::ObstacleStopPlannerNode::*)(class motion_planning::ObstacleStopPlannerNode * const, class std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)) 0x7fffd24e32f0 <motion_planning::ObstacleStopPlannerNode::onTrigger(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>, 
    __t=@0x7fffbc151260: 0x7fffbc023c70) at /usr/include/c++/9/bits/invoke.h:73
--Type <RET> for more, q to quit, c to continue without paging--
#13 0x00007fffd256bd97 in std::__invoke<void (motion_planning::ObstacleStopPlannerNode::*&)(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>), motion_planning::ObstacleStopPlannerNode*&, std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const> > (__fn=
    @0x7fffbc151250: (void (motion_planning::ObstacleStopPlannerNode::*)(class motion_planning::ObstacleStopPlannerNode * const, class std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)) 0x7fffd24e32f0 <motion_planning::ObstacleStopPlannerNode::onTrigger(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>)
    at /usr/include/c++/9/bits/invoke.h:95
#14 0x00007fffd256275a in std::_Bind<void (motion_planning::ObstacleStopPlannerNode::*(motion_planning::ObstacleStopPlannerNode*, std::_Placeholder<1>))(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>::__call<void, std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>&&, 0ul, 1ul>(std::tuple<std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>&&>&&, std::_Index_tuple<0ul, 1ul>) (this=0x7fffbc151250, __args=...)
    at /usr/include/c++/9/functional:400
#15 0x00007fffd2557628 in std::_Bind<void (motion_planning::ObstacleStopPlannerNode::*(motion_planning::ObstacleStopPlannerNode*, std::_Placeholder<1>))(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>::operator()<std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_--Type <RET> for more, q to quit, c to continue without paging--
<std::allocator<void> > const>, void>(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>&&) (this=0x7fffbc151250)
    at /usr/include/c++/9/functional:484
#16 0x00007fffd254656c in std::_Function_handler<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>), std::_Bind<void (motion_planning::ObstacleStopPlannerNode::*(motion_planning::ObstacleStopPlannerNode*, std::_Placeholder<1>))(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>&&) (__functor=..., __args#0=...)
    at /usr/include/c++/9/bits/std_function.h:300
#17 0x00007fffd2627dd7 in std::function<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>::operator()(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>) const (this=0x7fffbc140aa0, 
    __args#0=std::shared_ptr<const struct autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >> (empty) = {...})
    at /usr/include/c++/9/bits/std_function.h:688
#18 0x00007fffd2613831 in rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}::operator()<std::function<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::al--Type <RET> for more, q to quit, c to continue without paging--
locator<void> > const>)>&>(std::function<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>&) const (
    this=0x7fffbc140aa0, callback=...)
    at /opt/ros/galactic/include/rclcpp/any_subscription_callback.hpp:255
#19 0x00007fffd262dfb4 in std::__invoke_impl<void, rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::function<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>&>(std::__invoke_other, rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}&&, std::function<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>&) (__f=...)
    at /usr/include/c++/9/bits/invoke.h:60
#20 0x00007fffd2627e1a in std::__invoke<rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::function<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const>)>&>(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::disp--Type <RET> for more, q to quit, c to continue without paging--
atch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}&&, (std::__invoke_result&&)...) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#21 0x00007fffd26138bc in std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}&&, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<--Type <RET> for more, q to quit, c to continue without paging--
void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >&)>, std::tuple<std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> > >, std::integer_sequence<unsigned long, 4ul> >::__visit_invoke_impl(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::alloca--Type <RET> for more, q to quit, c to continue without paging--
tor<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >) (__visitor=..., 
    __vars#0=std::variant<> [no contained value])
    at /usr/include/c++/9/variant:981
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x00007fffd26138ff in std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}&&, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >&)>, st--Type <RET> for more, q to quit, c to continue without paging--
d::tuple<std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> > >, std::integer_sequence<unsigned long, 4ul> >::__do_visit_invoke(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::variant<std::function<void (autoware_auto_planning_m--Type <RET> for more, q to quit, c to continue without paging--
sgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >) (__visitor=..., __vars#0=std::variant<> [no contained value])
    at /usr/include/c++/9/variant:989
#23 0x00007fffd2613942 in std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_--Type <RET> for more, q to quit, c to continue without paging--
<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}&&, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >&)>, std::tuple<std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Traje--Type <RET> for more, q to quit, c to continue without paging--
ctory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> > >, std::integer_sequence<unsigned long, 4ul> >::__visit_invoke(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_plan--Type <RET> for more, q to quit, c to continue without paging--
ning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >) (__visitor=..., __vars#0=std::variant<> [no contained value])
    at /usr/include/c++/9/variant:1005
#24 0x00007fffd26141c9 in std::__do_visit<false, true, rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Traje--Type <RET> for more, q to quit, c to continue without paging--
ctory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >&>(rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}&&, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > > >)>, s--Type <RET> for more, q to quit, c to continue without paging--
td::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<std::function>)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)>, rclcpp::MessageInfo const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const&)>, std::variant<void (std::variant<void (std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> const, rclcpp::MessageInfo const&)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >)>, std::variant<void (std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)> >&) (__visitor=...)
    at /usr/include/c++/9/variant:1652
#25 0x00007fffd261422a in std::visit<rclcpp::AnySubscriptionCallback<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::allocator<void> >::dispatch(std::shared_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > >, rclcpp::MessageInfo const&)::{lambda(auto:1&&)#1}, std::variant<std::function<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const&)>, std::variant<void (autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> > const, rclcpp::MessageInfo const&)>, std::variant<void (std::unique_ptr<autoware_auto_planning_msgs::msg::Trajectory_<std::allocator<void> >, std::default_delete<autoware_auto_planning_msgs::msg::Trajectory_<s--Type <R--Type <RET> for m--Type <RET> for m--Type <RET> for more, q to quit, c to contin--Type <R--Type <RET> for more--Type <RET> for more, q to quit, c--Type <RET> for more--Type <RET> for more, q to --Type <RET> f--Type --Type <RET> for more, q to quit, c to continue without paging--Quit
(gdb) 

Expected behavior

No crash

Actual behavior

crash

Steps to reproduce

see https://github.com/autowarefoundation/autoware.universe/issues/2262

Versions

No response

Possible causes

No response

Additional context

No response

xmfcx commented 1 year ago

@satoshi-ota Did you have time to work on this? If you've created a PR, can you link it here?

satoshi-ota commented 1 year ago

@xmfcx @VRichardJP Sorry late reply :pray: Unfortunately, I did not check it. I'll try to fix in next week.

stale[bot] commented 1 year ago

This pull request has been automatically marked as stale because it has not had recent activity.