Kinovarobotics / ros2_kortex

ROS2 driver for the Gen3 Kinova robot arm
Other
45 stars 41 forks source link

Segfault in driver when calling kortex2_driver::KortexMultiInterfaceHardware::readGripperPosition() #80

Open schornakj opened 1 year ago

schornakj commented 1 year ago

Occasionally, the ros2_control controller manager segfaults due to an error within the Kortex API. Most recently, this happened while trying to command the gripper on a Kinova Gen3 Lite.

Stack trace:

[launcher_node-2] [ros2_control_node-1] [INFO] [1680817007.950298397] [gripper_controller]: Got request to cancel goal
[launcher_node-2] [ros2_control_node-1] Stack trace (most recent call last) in thread 178:
[launcher_node-2] [ros2_control_node-1] #8    Object "", at 0xffffffffffffffff, in 
[launcher_node-2] [ros2_control_node-1] #7    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fd0ff01d9ff, in 
[launcher_node-2] [ros2_control_node-1] #6    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fd0fef8bb42, in 
[launcher_node-2] [ros2_control_node-1] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fd0ff21b2b2, in 
[launcher_node-2] [ros2_control_node-1] #4    Object "/opt/ros/humble/lib/controller_manager/ros2_control_node", at 0x5567d7faa3b0, in 
[launcher_node-2] [ros2_control_node-1] #3    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7fd0fee23401, in hardware_interface::ResourceManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[launcher_node-2] [ros2_control_node-1] #2    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7fd0fee4a7c4, in hardware_interface::System::read(rclcpp::Time const&, rclcpp::Duration const&)
[launcher_node-2] [ros2_control_node-1] #1    Object "/opt/underlay_ws/install/kortex2_driver/lib/libkortex2_driver.so", at 0x7fd0f556258f, in kortex2_driver::KortexMultiInterfaceHardware::read(rclcpp::Time const&, rclcpp::Duration const&)
[launcher_node-2] [ros2_control_node-1] #0    Object "/opt/underlay_ws/install/kortex2_driver/lib/libkortex2_driver.so", at 0x7fd0f555b4ee, in kortex2_driver::KortexMultiInterfaceHardware::readGripperPosition()
[launcher_node-2] [ros2_control_node-1] Segmentation fault (Address not mapped to object [0x8])
[launcher_node-2] [ERROR] [ros2_control_node-1]: process has died [pid 104, exit code -11, cmd '/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_cfy6zjpy --params-file /tmp/launch_params_tb2xz7wf --params-file /opt/moveit_studio/user_ws/install/kinova_gen3_lite_base_config/share/kinova_gen3_lite_base_config/config/control/kinova_gen3_lite.ros2_control.yaml --params-file /tmp/launch_params_lda4rngp --params-file /tmp/launch_params_t88w48j_'].
schornakj commented 1 year ago

Saw this again today:

[launcher_node-2] [ros2_control_node-1] [INFO] [1684368228.393198346] [gripper_controller]: Received & accepted new action goal
[launcher_node-2] [ros2_control_node-1] [INFO] [1684368230.486474376] [joint_trajectory_controller]: Received new action goal
[launcher_node-2] [ros2_control_node-1] [INFO] [1684368230.486532746] [joint_trajectory_controller]: Accepted new action goal
[launcher_node-2] [ros2_control_node-1] [INFO] [1684368233.074543630] [joint_trajectory_controller]: Goal reached, success!
[launcher_node-2] [ros2_control_node-1] Stack trace (most recent call last) in thread 179:
[launcher_node-2] [ros2_control_node-1] #8    Object "", at 0xffffffffffffffff, in 
[launcher_node-2] [ros2_control_node-1] #7    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f3747e059ff, in 
[launcher_node-2] [ros2_control_node-1] #6    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f3747d73b42, in 
[launcher_node-2] [ros2_control_node-1] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f37480032b2, in 
[launcher_node-2] [ros2_control_node-1] #4    Object "/opt/ros/humble/lib/controller_manager/ros2_control_node", at 0x555f17bb63b0, in 
[launcher_node-2] [ros2_control_node-1] #3    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f3747c0b401, in hardware_interface::ResourceManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[launcher_node-2] [ros2_control_node-1] #2    Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f3747c327c4, in hardware_interface::System::read(rclcpp::Time const&, rclcpp::Duration const&)
[launcher_node-2] [ros2_control_node-1] #1    Object "/opt/underlay_ws/install/kortex2_driver/lib/libkortex2_driver.so", at 0x7f373636258f, in kortex2_driver::KortexMultiInterfaceHardware::read(rclcpp::Time const&, rclcpp::Duration const&)
[launcher_node-2] [ros2_control_node-1] #0    Object "/opt/underlay_ws/install/kortex2_driver/lib/libkortex2_driver.so", at 0x7f373635b4ee, in kortex2_driver::KortexMultiInterfaceHardware::readGripperPosition()
[launcher_node-2] [ros2_control_node-1] Segmentation fault (Address not mapped to object [0x8])
[launcher_node-2] [ERROR] [ros2_control_node-1]: process has died [pid 105, exit code -11, cmd '/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_f0dq7bxo --params-file /tmp/launch_params_qyewhppn --params-file /opt/moveit_studio/user_ws/install/kinova_gen3_lite_base_config/share/kinova_gen3_lite_base_config/config/control/kinova_gen3_lite.ros2_control.yaml --params-file /tmp/launch_params_qxiyveb4 --params-file /tmp/launch_params_v6kf65wn'].
aalmrad commented 1 week ago

Hello,

Apologies for the late reply. We are recently trying to tackle the github issues on our repositories more actively. On the surface, it seems that there is an attempt to access an unallocated memory, however I believe that this is related to this issue and I will be working towards a solution.

Best, Abed