Skip to content

Segfault when running epuck example with latest build of ros2_control. #1036

Closed
@ralphieraccoon

Description

@ralphieraccoon

Describe the Bug
I'm running webots_ros2 with the latest build of ros2_control in order to partially fix #1034 (because of ros-controls/ros2_control#2115) This does fix the -p -p error from that issue but now I have a segfault.

Steps to Reproduce

  1. Compile webots_ros2 with the latest build of ros2_control.
  2. Launch the webots_ros2_epuck example ros2 launch webots_ros2_epuck robot_launch.py.

Expected behavior
The example launches correctly.

Actual Behaviour
A segfault when trying to configure the diffdrive_controller:

[spawner-7] [INFO] [1743589960.034873232] [spawner_diffdrive_controller]: Loaded diffdrive_controller
[webots_controller_e-puck-5] [INFO] [1743589960.037095269] [controller_manager]: Configuring controller: 'diffdrive_controller'
[webots_controller_e-puck-5] [ros2run]: Segmentation fault

I ran gdb to get a stack trace, here are the first 20 frames, let me know if you need more:

#0  0x00007fffe858f74e in void std::_Destroy<hardware_interface::CommandInterface>(hardware_interface::CommandInterface*) ()
   from target:/home/ralphieraccoon/ros2_ws/install/hardware_interface/lib/libhardware_interface.so
#1  0x00007fffe858df21 in void std::_Destroy_aux<false>::__destroy<hardware_interface::CommandInterface*>(hardware_interface::CommandInterface*, hardware_interface::CommandInterface*)
    () from target:/home/ralphieraccoon/ros2_ws/install/hardware_interface/lib/libhardware_interface.so
#2  0x00007fffe858ab68 in void std::_Destroy<hardware_interface::CommandInterface*>(hardware_interface::CommandInterface*, hardware_interface::CommandInterface*) ()
   from target:/home/ralphieraccoon/ros2_ws/install/hardware_interface/lib/libhardware_interface.so
#3  0x00007fffe858202e in std::vector<hardware_interface::CommandInterface, std::allocator<hardware_interface::CommandInterface> >::~vector() ()
   from target:/home/ralphieraccoon/ros2_ws/install/hardware_interface/lib/libhardware_interface.so
#4  0x00007fffef59d2b0 in controller_interface::ChainableControllerInterface::export_reference_interfaces() ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_interface/lib/libcontroller_interface.so
#5  0x00007fffe326faee in controller_manager::ControllerManager::configure_controller(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#6  0x00007fffe32804e9 in controller_manager::ControllerManager::configure_controller_service_cb(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#7  0x00007fffe33d42e1 in void std::__invoke_impl<void, void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > > >(std::__invoke_memfun_deref, void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#8  0x00007fffe33ce125 in std::__invoke_result<void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > > >::type std::__invoke<void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > > >(void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#9  0x00007fffe33c8721 in void std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>::__call<void, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&, 0ul, 1ul, 2ul>(std::tuple<std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#10 0x00007fffe33c1be7 in void std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>::operator()<std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >, void>(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager--Type <RET> for more, q to quit, c to continue without paging--
_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&) () from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#11 0x00007fffe33b8dcf in void std::__invoke_impl<void, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > > >(std::__invoke_other, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&) () from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#12 0x00007fffe33ae3e4 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > > >, void>::type std::__invoke_r<void, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > > >(std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#13 0x00007fffe33a0974 in std::_Function_handler<void (std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >), std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >&&) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#14 0x00007fffe34045fd in std::function<void (std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >)>::operator()(std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Response_<std::allocator<void> > >) const ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#15 0x00007fffe33f916a in rclcpp::AnyServiceCallback<controller_manager_msgs::srv::ConfigureController>::dispatch(std::shared_ptr<rclcpp::Service<controller_manager_msgs::srv::ConfigureController> > const&, std::shared_ptr<rmw_request_id_s> const&, std::shared_ptr<controller_manager_msgs::srv::ConfigureController_Request_<std::allocator<void> > >) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#16 0x00007fffe33ee18b in rclcpp::Service<controller_manager_msgs::srv::ConfigureController>::handle_request(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) ()
   from target:/home/ralphieraccoon/ros2_ws/install/controller_manager/lib/libcontroller_manager.so
#17 0x00007ffff73dafca in ?? () from target:/opt/ros/jazzy/lib/librclcpp.so
#18 0x00007ffff7303a54 in rclcpp::Executor::execute_service(std::shared_ptr<rclcpp::ServiceBase>) () from target:/opt/ros/jazzy/lib/librclcpp.so
#19 0x00007ffff7307c6a in rclcpp::Executor::execute_any_executable(rclcpp::AnyExecutable&) () from target:/opt/ros/jazzy/lib/librclcpp.so

Affected Packages
List of affected packages:

  • webots_ros2_epuck (though this probably affects all of them)

System

  • Webots Version: R2025a
  • ROS Version: Jazzy
  • Operating System: Ubuntu 24.04 Noble Numbat

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions