Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Jazzy] action server registers clock jump callbacks without the clock mutex (heap corruption)

Abierto
#3,317 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@Miko997 ya está trabajando en esto.

Desde el 8/10/2026.

  • #3318 de @Miko997 — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
44/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cpp
Área
backend

Línea de trabajo

Start by locating the action-server code that registers clock-jump callbacks and tracing how it accesses the clock mutex; the issue does not name specific files or tests. Reproduce the reported heap corruption on Jazzy and inspect the related locking and callback-registration behavior. Done means the registration is safe with respect to the clock mutex and the failure is covered by a regression test.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Generated by Generative AI

Claude Opus 5.5

Operating System:

Ubuntu 24.04

ROS version or commit hash:

ros-jazzy-rclcpp / ros-jazzy-rclcpp-action 28.1.21, ros-jazzy-rcl-action 9.2.11

RMW implementation (if applicable):

rmw_cyclonedds_cpp 2.2.4

RMW Configuration (if applicable):

No response

Client library (if applicable):

rclcpp

'ros2 doctor --report' output
ros2 doctor --report

   NETWORK CONFIGURATION
inet         : 127.0.0.1
inet4        : ['127.0.0.1']
inet6        : ['::1']
netmask      : 255.0.0.0
device       : lo
flags        : 73<UP,RUNNING,LOOPBACK>
mtu          : 65536
inet         : 10.125.1.127
inet4        : ['10.125.1.127']
ether        : 4c:a9:54:c9:b9:77
inet6        : ['fe80::5997:9e07:93c8:836%wlp0s20f3']
netmask      : 255.255.255.0
device       : wlp0s20f3
flags        : 4163<RUNNING,UP,BROADCAST,MULTICAST>
mtu          : 1500
broadcast    : 10.125.1.255
inet         : 192.168.122.1
inet4        : ['192.168.122.1']
ether        : 52:54:00:56:7c:7e
netmask      : 255.255.255.0
device       : virbr0
flags        : 4099<UP,BROADCAST,MULTICAST>
mtu          : 1500
broadcast    : 192.168.122.255
inet         : 100.98.150.106
inet4        : ['100.98.150.106']
inet6        : ['fd7a:115c:a1e0::73a:966a', 'fe80::c29:9cc1:58af:3bb0%tailscale0']
netmask      : 255.255.255.255
device       : tailscale0
flags        : 4305<PTP,NOARP,UP,MULTICAST,RUNNING>
mtu          : 1280
inet         : 172.17.0.1
inet4        : ['172.17.0.1']
ether        : 8a:31:19:0e:58:82
inet6        : ['fe80::8831:19ff:fe0e:5882%docker0']
netmask      : 255.255.0.0
device       : docker0
flags        : 4099<UP,BROADCAST,MULTICAST>
mtu          : 1500
broadcast    : 172.17.255.255

   PACKAGE VERSIONS
ament_index_python                        : latest=1.8.4, local=1.8.4
mola_bridge_ros2                          : latest=2.9.0, local=2.9.0
ros2run                                   : latest=0.32.10, local=0.32.10
pcl_ros                                   : latest=2.6.4, local=2.6.4
parallel_gripper_controller               : latest=4.40.1, local=4.40.1
control_toolbox                           : latest=4.11.0, local=4.11.0
angles                                    : latest=1.16.1, local=1.16.1
rosbag2                                   : latest=0.26.11, local=0.26.11
xacro                                     : latest=2.1.1, local=2.1.1
simulation_interfaces                     : latest=1.5.1, local=1.5.1
dwb_core                                  : latest=1.3.12, local=1.3.12
interactive_markers                       : latest=2.5.5, local=2.5.5
nav2_core                                 : latest=1.3.12, local=1.3.12
ros_gz_sim                                : latest=1.0.22, local=1.0.22
nav2_msgs                                 : latest=1.3.12, local=1.3.12
tf2_py                                    : latest=0.36.21, local=0.36.21
tracetools                                : latest=8.2.6, local=8.2.6
domain_coordinator                        : latest=0.12.1, local=0.12.1
joint_trajectory_controller               : latest=4.40.1, local=4.40.1
ament_uncrustify                          : latest=0.17.5, local=0.17.5
rcpputils                                 : latest=2.11.4, local=2.11.4
rosidl_dynamic_typesupport                : latest=0.1.2, local=0.1.2
ros_environment                           : latest=4.2.1, local=4.2.1
rosbag2_compression_zstd                  : latest=0.26.11, local=0.26.11
ament_cmake_target_dependencies           : latest=2.5.6, local=2.5.6
mola_msgs                                 : latest=2.9.0, local=2.9.0
uncrustify_vendor                         : latest=3.0.1, local=3.0.1
mecanum_drive_controller                  : latest=4.40.1, local=4.40.1
srdfdom                                   : latest=2.0.7, local=2.0.7
nav2_constrained_smoother                 : latest=1.3.12, local=1.3.12
ros_gz_bridge                             : latest=1.0.22, local=1.0.22
visualization_msgs                        : latest=5.3.8, local=5.3.8
ament_cmake_google_benchmark              : latest=2.5.6, local=2.5.6
admittance_controller                     : latest=4.40.1, local=4.40.1
gripper_controllers                       : latest=4.40.1, local=4.40.1
class_loader                              : latest=2.7.1, local=2.7.1
diff_drive_controller                     : latest=4.40.1, local=4.40.1
rosidl_core_generators                    : latest=0.2.1, local=0.2.1
qt_gui_cpp                                : latest=2.7.6, local=2.7.6
sdformat_urdf                             : latest=1.0.2, local=1.0.2
rcl_action                                : latest=9.2.11, local=9.2.11
yaml_cpp_vendor                           : latest=9.0.1, local=9.0.1
diagnostic_aggregator                     : latest=4.2.7, local=4.2.7
twist_mux                                 : latest=4.5.0, local=4.5.0
ros2_medkit_msgs                          : latest=0.4.0, local=0.4.0
bond                                      : latest=4.2.0, local=4.2.0
libcurl_vendor                            : latest=3.4.4, local=3.4.4
ament_cmake_gmock                         : latest=2.5.6, local=2.5.6
geometric_shapes                          : latest=2.3.4, local=2.3.4
laser_geometry                            : latest=2.7.2, local=2.7.2
bondcpp                                   : latest=4.2.0, local=4.2.0
spdlog_vendor                             : latest=1.6.2, local=1.6.2
geographic_msgs                           : latest=1.0.6, local=1.0.6
tf2_geometry_msgs                         : latest=0.36.21, local=0.36.21
ament_xmllint                             : latest=0.17.5, local=0.17.5
ament_cpplint                             : latest=0.17.5, local=0.17.5
rosidl_typesupport_introspection_c        : latest=4.6.9, local=4.6.9
ros2interface                             : latest=0.32.10, local=0.32.10
rosbag2_storage                           : latest=0.26.11, local=0.26.11
pid_controller                            : latest=4.40.1, local=4.40.1
ros2cli_common_extensions                 : latest=0.3.1, local=0.3.1
state_interfaces_broadcaster              : latest=4.40.1, local=4.40.1
rviz_rendering                            : latest=14.1.22, local=14.1.22
pybind11_vendor                           : latest=3.1.3, local=3.1.3
rosidl_core_runtime                       : latest=0.2.1, local=0.2.1
gz_common_vendor                          : latest=0.0.9, local=0.0.9
actionlib_msgs                            : latest=5.3.8, local=5.3.8
topic_tools_interfaces                    : latest=1.3.4, local=1.3.4
nav2_navfn_planner                        : latest=1.3.12, local=1.3.12
imu_sensor_broadcaster                    : latest=4.40.1, local=4.40.1
rclcpp_lifecycle                          : latest=28.1.21, local=28.1.21
nav2_rviz_plugins                         : latest=1.3.12, local=1.3.12
nav2_amcl                                 : latest=1.3.12, local=1.3.12
gz_sensors_vendor                         : latest=0.0.6, local=0.0.6
ament_cmake_export_interfaces             : latest=2.5.6, local=2.5.6
image_transport                           : latest=5.1.8, local=5.1.8
ament_lint_common                         : latest=0.17.5, local=0.17.5
theora_image_transport                    : latest=4.0.7, local=4.0.7
common_interfaces                         : latest=5.3.8, local=5.3.8
urdf_parser_plugin                        : latest=2.10.1, local=2.10.1
rosidl_typesupport_interface              : latest=4.6.9, local=4.6.9
rcl_lifecycle                             : latest=9.2.11, local=9.2.11
gz_transport_vendor                       : latest=0.0.7, local=0.0.7
tinyxml2_vendor                           : latest=0.9.2, local=0.9.2
nav2_util                                 : latest=1.3.12, local=1.3.12
bicycle_steering_controller               : latest=4.40.1, local=4.40.1
action_msgs                               : latest=2.0.4, local=2.0.4
rosidl_runtime_py                         : latest=0.13.2, local=0.13.2
actuator_msgs                             : latest=0.0.1, local=0.0.1
eigen_stl_containers                      : latest=1.1.0, local=1.1.0
rosidl_cli                                : latest=4.6.9, local=4.6.9
joint_state_publisher_gui                 : latest=2.4.1, local=2.4.1
position_controllers                      : latest=4.40.1, local=4.40.1
ament_lint_auto                           : latest=0.17.5, local=0.17.5
ros2doctor                                : latest=0.32.10, local=0.32.10
perception_pcl                            : latest=2.6.4, local=2.6.4
ros2_control_cmake                        : latest=0.4.0, local=0.4.0
rqt_gui                                   : latest=1.6.4, local=1.6.4
gz_dartsim_vendor                         : latest=0.0.3, local=0.0.3
gps_msgs                                  : latest=2.1.2, local=2.1.2
navigation2                               : latest=1.3.12, local=1.3.12
osrf_pycommon                             : latest=2.1.7, local=2.1.7
rosidl_adapter                            : latest=4.6.9, local=4.6.9
ament_clang_format                        : latest=0.17.5, local=0.17.5
zstd_vendor                               : latest=0.26.11, local=0.26.11
rosidl_runtime_c                          : latest=4.6.9, local=4.6.9
ament_cmake_version                       : latest=2.5.6, local=2.5.6
mola_lidar_odometry                       : latest=2.2.0, local=2.2.0
nav2_costmap_2d                           : latest=1.3.12, local=1.3.12
gz_tools_vendor                           : latest=0.0.7, local=0.0.7
moveit_ros_warehouse                      : latest=2.12.4, local=2.12.4
keyboard_handler                          : latest=0.3.2, local=0.3.2
random_numbers                            : latest=2.0.5, local=2.0.5
type_description_interfaces               : latest=2.0.4, local=2.0.4
rosidl_pycommon                           : latest=4.6.9, local=4.6.9
ros2node                                  : latest=0.32.10, local=0.32.10
nav2_regulated_pure_pursuit_controller    : latest=1.3.12, local=1.3.12
qt_gui_py_common                          : latest=2.7.6, local=2.7.6
nav2_behavior_tree                        : latest=1.3.12, local=1.3.12
resource_retriever                        : latest=3.4.4, local=3.4.4
behaviortree_cpp                          : latest=4.9.0, local=4.9.0
rosidl_typesupport_fastrtps_cpp           : latest=3.6.4, local=3.6.4
rosbag2_interfaces                        : latest=0.26.11, local=0.26.11
moveit_ros_planning                       : latest=2.12.4, local=2.12.4
ros2multicast                             : latest=0.32.10, local=0.32.10
warehouse_ros                             : latest=2.0.5, local=2.0.5
ros2_controllers                          : latest=4.40.1, local=4.40.1
test_msgs                                 : latest=2.0.4, local=2.0.4
force_torque_sensor_broadcaster           : latest=4.40.1, local=4.40.1
ament_cmake_pep257                        : latest=0.17.5, local=0.17.5
nav2_collision_monitor                    : latest=1.3.12, local=1.3.12
opennav_docking_core                      : latest=1.3.12, local=1.3.12
ament_cmake_python                        : latest=2.5.6, local=2.5.6
nav2_planner                              : latest=1.3.12, local=1.3.12
nav2_rotation_shim_controller             : latest=1.3.12, local=1.3.12
nav2_graceful_controller                  : latest=1.3.12, local=1.3.12
controller_interface                      : latest=4.45.2, local=4.45.2
launch_ros                                : latest=0.26.12, local=0.26.12
robot_state_publisher                     : latest=3.3.4, local=3.3.4
sensor_msgs_py                            : latest=5.3.8, local=5.3.8
nav2_voxel_grid                           : latest=1.3.12, local=1.3.12
ros2_control_test_assets                  : latest=4.45.2, local=4.45.2
opennav_docking_bt                        : latest=1.3.12, local=1.3.12
ompl                                      : latest=1.7.0, local=1.7.0
pal_statistics_msgs                       : latest=2.7.0, local=2.7.0
nav2_dwb_controller                       : latest=1.3.12, local=1.3.12
std_msgs                                  : latest=5.3.8, local=5.3.8
rcl_yaml_param_parser                     : latest=9.2.11, local=9.2.11
compressed_image_transport                : latest=4.0.7, local=4.0.7
ros_gz_sim_demos                          : latest=1.0.22, local=1.0.22
gz_msgs_vendor                            : latest=0.0.6, local=0.0.6
nav2_common                               : latest=1.3.12, local=1.3.12
shape_msgs                                : latest=5.3.8, local=5.3.8
rosbag2_py                                : latest=0.26.11, local=0.26.11
ros2lifecycle                             : latest=0.32.10, local=0.32.10
rcutils                                   : latest=6.7.6, local=6.7.6
ament_flake8                              : latest=0.17.5, local=0.17.5
tango_icons_vendor                        : latest=0.3.1, local=0.3.1
liblz4_vendor                             : latest=0.26.11, local=0.26.11
rqt_gui_py                                : latest=1.6.4, local=1.6.4
kdl_parser                                : latest=2.11.0, local=2.11.0
ros2cli                                   : latest=0.32.10, local=0.32.10
composition_interfaces                    : latest=2.0.4, local=2.0.4
launch_testing_ament_cmake                : latest=3.4.11, local=3.4.11
rosidl_typesupport_introspection_cpp      : latest=4.6.9, local=4.6.9
ament_cmake_copyright                     : latest=0.17.5, local=0.17.5
topic_tools                               : latest=1.3.4, local=1.3.4
rosidl_default_runtime                    : latest=1.6.1, local=1.6.1
steering_controllers_library              : latest=4.40.1, local=4.40.1
nav2_theta_star_planner                   : latest=1.3.12, local=1.3.12
ackermann_msgs                            : latest=2.0.2, local=2.0.2
gpio_controllers                          : latest=4.40.1, local=4.40.1
performance_test_fixture                  : latest=0.2.2, local=0.2.2
mrpt_libros_bridge                        : latest=3.5.3, local=3.5.3
ament_cmake_gen_version_h                 : latest=2.5.6, local=2.5.6
moveit_msgs                               : latest=2.6.0, local=2.6.0
tcb_span                                  : latest=1.3.1, local=1.3.1
moveit_core                               : latest=2.12.4, local=2.12.4
diagnostic_msgs                           : latest=5.3.8, local=5.3.8
nav2_route                                : latest=1.3.12, local=1.3.12
joint_state_broadcaster                   : latest=4.40.1, local=4.40.1
ros2topic                                 : latest=0.32.10, local=0.32.10
rqt_gui_cpp                               : latest=1.6.4, local=1.6.4
ament_cmake_lint_cmake                    : latest=0.17.5, local=0.17.5
console_bridge_vendor                     : latest=1.7.2, local=1.7.2
rpyutils                                  : latest=0.4.2, local=0.4.2
nav2_lifecycle_manager                    : latest=1.3.12, local=1.3.12
ament_cmake_gtest                         : latest=2.5.6, local=2.5.6
fastrtps_cmake_module                     : latest=3.6.4, local=3.6.4
rosbag2_cpp                               : latest=0.26.11, local=0.26.11
gz_sim_vendor                             : latest=0.0.10, local=0.0.10
rclcpp                                    : latest=28.1.21, local=28.1.21
ros_workspace                             : latest=1.0.3, local=1.0.3
ament_pep257                              : latest=0.17.5, local=0.17.5
rviz_ogre_vendor                          : latest=14.1.22, local=14.1.22
urdfdom_py                                : latest=1.2.1, local=1.2.1
rmw_implementation_cmake                  : latest=7.3.3, local=7.3.3
transmission_interface                    : latest=4.45.2, local=4.45.2
tricycle_steering_controller              : latest=4.40.1, local=4.40.1
ament_cmake_core                          : latest=2.5.6, local=2.5.6
ros_gz_interfaces                         : latest=1.0.22, local=1.0.22
gz_ros2_control                           : latest=1.2.19, local=1.2.19
effort_controllers                        : latest=4.40.1, local=4.40.1
rmw_dds_common                            : latest=3.1.1, local=3.1.1
radar_msgs                                : latest=0.2.2, local=0.2.2
sros2                                     : latest=0.13.6, local=0.13.6
gz_utils_vendor                           : latest=0.0.5, local=0.0.5
rosidl_generator_py                       : latest=0.22.2, local=0.22.2
rqt_plot                                  : latest=1.4.5, local=1.4.5
ros2component                             : latest=0.32.10, local=0.32.10
rqt_topic                                 : latest=1.7.5, local=1.7.5
mrpt_nav_interfaces                       : latest=2.5.0, local=2.5.0
rclpy                                     : latest=7.1.11, local=7.1.11
launch                                    : latest=3.4.11, local=3.4.11
ros_gz_image                              : latest=1.0.22, local=1.0.22
controller_manager                        : latest=4.45.2, local=4.45.2
ament_lint_cmake                          : latest=0.17.5, local=0.17.5
rviz_common                               : latest=14.1.22, local=14.1.22
nav2_map_server                           : latest=1.3.12, local=1.3.12
can_msgs                                  : latest=2.0.0, local=2.0.0
pluginlib                                 : latest=5.4.5, local=5.4.5
ament_cmake_export_include_directories    : latest=2.5.6, local=2.5.6
statistics_msgs                           : latest=2.0.4, local=2.0.4
object_recognition_msgs                   : latest=2.0.0, local=2.0.0
parameter_traits                          : latest=0.7.3, local=0.7.3
unique_identifier_msgs                    : latest=2.5.1, local=2.5.1
ament_cmake_clang_format                  : latest=0.17.5, local=0.17.5
service_msgs                              : latest=2.0.4, local=2.0.4
eigen3_cmake_module                       : latest=0.3.1, local=0.3.1
builtin_interfaces                        : latest=2.0.4, local=2.0.4
chained_filter_controller                 : latest=4.40.1, local=4.40.1
ros2bag                                   : latest=0.26.11, local=0.26.11
nav2_smac_planner                         : latest=1.3.12, local=1.3.12
ros2_medkit_serialization                 : latest=0.4.0, local=0.4.0
lifecycle_msgs                            : latest=2.0.4, local=2.0.4
dwb_plugins                               : latest=1.3.12, local=1.3.12
rviz_default_plugins                      : latest=14.1.22, local=14.1.22
ros2param                                 : latest=0.32.10, local=0.32.10
ament_cmake_export_link_flags             : latest=2.5.6, local=2.5.6
hardware_interface                        : latest=4.45.2, local=4.45.2
rosidl_default_generators                 : latest=1.6.1, local=1.6.1
pcl_msgs                                  : latest=1.0.0, local=1.0.0
ament_package                             : latest=0.16.5, local=0.16.5
gz_plugin_vendor                          : latest=0.0.5, local=0.0.5
nav2_simple_commander                     : latest=1.3.12, local=1.3.12
diagnostic_updater                        : latest=4.2.7, local=4.2.7
robot_localization                        : latest=3.8.3, local=3.8.3
moveit_common                             : latest=2.12.4, local=2.12.4
pcl_conversions                           : latest=2.6.4, local=2.6.4
ament_cmake_libraries                     : latest=2.5.6, local=2.5.6
python_qt_binding                         : latest=2.2.2, local=2.2.2
nav_msgs                                  : latest=5.3.8, local=5.3.8
image_transport_plugins                   : latest=4.0.7, local=4.0.7
ros2_medkit_fault_manager                 : latest=0.4.0, local=0.4.0
rosx_introspection                        : latest=2.3.0, local=2.3.0
rclcpp_action                             : latest=28.1.21, local=28.1.21
gz_fuel_tools_vendor                      : latest=0.0.6, local=0.0.6
ros2action                                : latest=0.32.10, local=0.32.10
tl_expected                               : latest=1.3.1, local=1.3.1
rmw                                       : latest=7.3.3, local=7.3.3
rosbag2_compression                       : latest=0.26.11, local=0.26.11
rqt_py_common                             : latest=1.6.4, local=1.6.4
sqlite3_vendor                            : latest=0.26.11, local=0.26.11
octomap_msgs                              : latest=2.0.1, local=2.0.1
tf_transformations                        : latest=1.1.1, local=1.1.1
filters                                   : latest=2.2.2, local=2.2.2
mcap_vendor                               : latest=0.26.11, local=0.26.11
nav2_controller                           : latest=1.3.12, local=1.3.12
python_orocos_kdl_vendor                  : latest=0.5.2, local=0.5.2
demo_nodes_cpp                            : latest=0.33.11, local=0.33.11
map_msgs                                  : latest=2.4.1, local=2.4.1
tf2_sensor_msgs                           : latest=0.36.21, local=0.36.21
tf2_kdl                                   : latest=0.36.21, local=0.36.21
example_interfaces                        : latest=0.12.1, local=0.12.1
ros2launch                                : latest=0.26.12, local=0.26.12
mola_state_estimation_smoother            : latest=2.4.0, local=2.4.0
ament_cmake_clang_tidy                    : latest=0.17.5, local=0.17.5
orocos_kdl_vendor                         : latest=0.5.2, local=0.5.2
mola_common                               : latest=0.6.1, local=0.6.1
dwb_msgs                                  : latest=1.3.12, local=1.3.12
ament_cmake_flake8                        : latest=0.17.5, local=0.17.5
point_cloud_transport                     : latest=4.0.8, local=4.0.8
ament_clang_tidy                          : latest=0.17.5, local=0.17.5
ament_cmake_export_dependencies           : latest=2.5.6, local=2.5.6
ament_cmake_test                          : latest=2.5.6, local=2.5.6
rosidl_typesupport_fastrtps_c             : latest=3.6.4, local=3.6.4
qt_gui                                    : latest=2.7.6, local=2.7.6
pose_broadcaster                          : latest=4.40.1, local=4.40.1
message_filters                           : latest=4.11.17, local=4.11.17
generate_parameter_library_py             : latest=0.7.3, local=0.7.3
sensor_msgs                               : latest=5.3.8, local=5.3.8
tricycle_controller                       : latest=4.40.1, local=4.40.1
ament_cmake_export_libraries              : latest=2.5.6, local=2.5.6
nav2_mppi_controller                      : latest=1.3.12, local=1.3.12
ament_index_cpp                           : latest=1.8.4, local=1.8.4
launch_testing_ros                        : latest=0.26.12, local=0.26.12
gz_cmake_vendor                           : latest=0.0.11, local=0.0.11
ros2pkg                                   : latest=0.32.10, local=0.32.10
rosidl_generator_type_description         : latest=4.6.9, local=4.6.9
rmw_implementation                        : latest=2.15.6, local=2.15.6
ament_cmake_ros                           : latest=0.12.1, local=0.12.1
ament_cmake                               : latest=2.5.6, local=2.5.6
nav2_behaviors                            : latest=1.3.12, local=1.3.12
mrpt_msgs                                 : latest=0.6.0, local=0.6.0
forward_command_controller                : latest=4.40.1, local=4.40.1
ament_cmake_uncrustify                    : latest=0.17.5, local=0.17.5
rviz_assimp_vendor                        : latest=14.1.22, local=14.1.22
mola_state_estimation                     : latest=2.4.0, local=2.4.0
moveit_ros_move_group                     : latest=2.12.4, local=2.12.4
ament_cmake_pytest                        : latest=2.5.6, local=2.5.6
pal_statistics                            : latest=2.7.0, local=2.7.0
tf2                                       : latest=0.36.21, local=0.36.21
ament_lint                                : latest=0.17.5, local=0.17.5
dwb_critics                               : latest=1.3.12, local=1.3.12
tf2_ros_py                                : latest=0.36.21, local=0.36.21
nav_2d_msgs                               : latest=1.3.12, local=1.3.12
stereo_msgs                               : latest=5.3.8, local=5.3.8
compressed_depth_image_transport          : latest=4.0.7, local=4.0.7
rosgraph_msgs                             : latest=2.0.4, local=2.0.4
geometry_msgs                             : latest=5.3.8, local=5.3.8
ros_gz                                    : latest=1.0.22, local=1.0.22
vision_msgs                               : latest=4.1.1, local=4.1.1
kinematics_interface                      : latest=1.7.1, local=1.7.1
omni_wheel_drive_controller               : latest=4.40.1, local=4.40.1
rcl_logging_spdlog                        : latest=3.1.1, local=3.1.1
mola_demos                                : latest=2.9.0, local=2.9.0
moveit_ros_planning_interface             : latest=2.12.4, local=2.12.4
ament_cmake_xmllint                       : latest=0.17.5, local=0.17.5
gps_sensor_broadcaster                    : latest=4.40.1, local=4.40.1
rcl_logging_interface                     : latest=3.1.1, local=3.1.1
tf2_msgs                                  : latest=0.36.21, local=0.36.21
rqt_image_view                            : latest=1.3.0, local=1.3.0
ament_cmake_cpplint                       : latest=0.17.5, local=0.17.5
tf2_eigen                                 : latest=0.36.21, local=0.36.21
moveit_ros_occupancy_map_monitor          : latest=2.12.4, local=2.12.4
gz_math_vendor                            : latest=0.0.9, local=0.0.9
marine_acoustic_msgs                      : latest=2.1.0, local=2.1.0
nav_2d_utils                              : latest=1.3.12, local=1.3.12
ament_cmake_include_directories           : latest=2.5.6, local=2.5.6
rosidl_generator_cpp                      : latest=4.6.9, local=4.6.9
generate_parameter_library                : latest=0.7.3, local=0.7.3
zstd_image_transport                      : latest=4.0.7, local=4.0.7
launch_yaml                               : latest=3.4.11, local=3.4.11
ament_cmake_export_targets                : latest=2.5.6, local=2.5.6
controller_manager_msgs                   : latest=4.45.2, local=4.45.2
tf2_ros                                   : latest=0.36.21, local=0.36.21
rosidl_typesupport_c                      : latest=3.2.3, local=3.2.3
cv_bridge                                 : latest=4.1.0, local=4.1.0
rosidl_typesupport_cpp                    : latest=3.2.3, local=3.2.3
rosbag2_transport                         : latest=0.26.11, local=0.26.11
ros2controlcli                            : latest=4.45.2, local=4.45.2
ament_cmake_export_definitions            : latest=2.5.6, local=2.5.6
range_sensor_broadcaster                  : latest=4.40.1, local=4.40.1
mola_metric_maps                          : latest=2.9.0, local=2.9.0
sdformat_vendor                           : latest=0.0.11, local=0.0.11
costmap_queue                             : latest=1.3.12, local=1.3.12
gz_ogre_next_vendor                       : latest=0.0.5, local=0.0.5
rviz2                                     : latest=14.1.22, local=14.1.22
smclib                                    : latest=4.2.0, local=4.2.0
urdf                                      : latest=2.10.1, local=2.10.1
rosidl_generator_rs                       : latest=0.4.12, local=0.4.12
nav2_smoother                             : latest=1.3.12, local=1.3.12
libstatistics_collector                   : latest=1.7.4, local=1.7.4
nav2_bt_navigator                         : latest=1.3.12, local=1.3.12
rosbag2_storage_sqlite3                   : latest=0.26.11, local=0.26.11
python_cmake_module                       : latest=0.11.1, local=0.11.1
rcl_interfaces                            : latest=2.0.4, local=2.0.4
rclcpp_components                         : latest=28.1.21, local=28.1.21
ros2service                               : latest=0.32.10, local=0.32.10
rosbag2_storage_mcap                      : latest=0.26.11, local=0.26.11
twist_mux_msgs                            : latest=3.0.1, local=3.0.1
rosidl_parser                             : latest=4.6.9, local=4.6.9
ament_cmake_auto                          : latest=2.5.6, local=2.5.6
launch_xml                                : latest=3.4.11, local=3.4.11
gz_gui_vendor                             : latest=0.0.5, local=0.0.5
osqp_vendor                               : latest=0.2.0, local=0.2.0
control_msgs                              : latest=5.9.0, local=5.9.0
ament_cppcheck                            : latest=0.17.5, local=0.17.5
gz_physics_vendor                         : latest=0.0.7, local=0.0.7
ackermann_steering_controller             : latest=4.40.1, local=4.40.1
ros2plugin                                : latest=5.4.5, local=5.4.5
ament_cmake_cppcheck                      : latest=0.17.5, local=0.17.5
ament_copyright                           : latest=0.17.5, local=0.17.5
slam_toolbox                              : latest=2.8.5, local=2.8.5
twist_stamper                             : latest=0.0.5, local=0.0.5
joint_limits                              : latest=4.45.2, local=4.45.2
ros2_control                              : latest=4.45.2, local=4.45.2
rmw_cyclonedds_cpp                        : latest=2.2.3, local=2.2.4
realtime_tools                            : latest=3.11.0, local=3.11.0
rosidl_runtime_cpp                        : latest=4.6.9, local=4.6.9
gz_rendering_vendor                       : latest=0.0.7, local=0.0.7
std_srvs                                  : latest=5.3.8, local=5.3.8
rcl                                       : latest=9.2.11, local=9.2.11
opennav_docking                           : latest=1.3.12, local=1.3.12
nav2_velocity_smoother                    : latest=1.3.12, local=1.3.12
rosbag2_storage_default_plugins           : latest=0.26.11, local=0.26.11
moveit_kinematics                         : latest=2.12.4, local=2.12.4
rosidl_generator_c                        : latest=4.6.9, local=4.6.9
libyaml_vendor                            : latest=1.6.4, local=1.6.4
launch_testing                            : latest=3.4.11, local=3.4.11
rosidl_cmake                              : latest=4.6.9, local=4.6.9
velocity_controllers                      : latest=4.40.1, local=4.40.1
joint_state_publisher                     : latest=2.4.1, local=2.4.1
mola_launcher                             : latest=2.9.0, local=2.9.0
trajectory_msgs                           : latest=5.3.8, local=5.3.8
nav2_waypoint_follower                    : latest=1.3.12, local=1.3.12

   PLATFORM INFORMATION
system           : Linux
platform info    : Linux-6.17.0-1032-oem-x86_64-with-glibc2.39
release          : 6.17.0-1032-oem
processor        : x86_64

   QOS COMPATIBILITY LIST
compatibility status    : No publisher/subscriber pairs found

   RMW MIDDLEWARE
middleware name    : rmw_cyclonedds_cpp

   ROS 2 INFORMATION
distribution name      : jazzy
distribution type      : ros2
distribution status    : active
release platforms      : {'debian': ['bookworm'], 'rhel': ['9'], 'ubuntu': ['noble']}

   TOPIC LIST
topic               : none
publisher count     : 0
subscriber count    : 0

Steps to reproduce issue

1: Spin a node on an events-based executor and create action servers on that node from another thread:

#include <memory>
#include <thread>
#include <vector>

#include "example_interfaces/action/fibonacci.hpp"
#include "rclcpp/executors/events_cbg_executor/events_cbg_executor.hpp"
#include "rclcpp/rclcpp.hpp"
#include "rclcpp_action/rclcpp_action.hpp"

using Fibonacci = example_interfaces::action::Fibonacci;

int main(int argc, char ** argv)
{
  rclcpp::init(argc, argv);
  auto node = std::make_shared<rclcpp::Node>("action_server_race");
  rclcpp::executors::EventsCBGExecutor executor;
  executor.add_node(node);
  std::thread spinner([&executor]() {executor.spin();});

  for (int round = 0; round < 200; ++round) {
    std::vector<rclcpp_action::Server<Fibonacci>::SharedPtr> servers;
    for (int i = 0; i < 5; ++i) {
      servers.push_back(rclcpp_action::create_server<Fibonacci>(
        node, "fibonacci_" + std::to_string(i),
        [](const rclcpp_action::GoalUUID &, std::shared_ptr<const Fibonacci::Goal>) {
          return rclcpp_action::GoalResponse::REJECT;
        },
        [](std::shared_ptr<rclcpp_action::ServerGoalHandle<Fibonacci>>) {
          return rclcpp_action::CancelResponse::REJECT;
        },
        [](std::shared_ptr<rclcpp_action::ServerGoalHandle<Fibonacci>>) {}));
    }
  }

  executor.cancel();
  spinner.join();
  rclcpp::shutdown();
  return 0;

2: Build with -fsanitize=thread and run it.

Expected behavior

creating an action server while the node is spinning is safe, without data races

Actual behavior

TSan reports a data race on the rcl_clock_t jump callback array between two threads:

  • The expire thread spun up with ServerBase::set_on_ready_callback which calls rcl_clock_add_jump_callback under the clock mutex
  • ServerBase's constructor which calls rcl_clock_add_jump_callback without taking the clock mutex.
WARNING: ThreadSanitizer: data race
  Write of size 8 at 0x72140000fff0 by main thread:
    #0 realloc
    #1 rcl_clock_add_jump_callback
    #2 rclcpp_action::create_server<Fibonacci>(...) create_server.hpp:99
    #3 rclcpp_action::create_server<Fibonacci>(std::shared_ptr<rclcpp::Node>, ...) create_server.hpp:151
    #4 main repro.cpp:24

  Previous write of size 8 at 0x72140000fff0 by thread T23 (mutexes: write M0, write M1):
    #0 realloc
    #1 rcl_clock_add_jump_callback

  Mutex M1 created at:
    #1 rclcpp::TimeSource::attachClock(std::shared_ptr<rclcpp::Clock>)

  Thread T23 (running) created by thread T17 at:
    #0 pthread_create
    #1 std::thread::_M_start_thread(...)

similarly on destruction:

WARNING: ThreadSanitizer: data race
  Write of size 8 at 0x72480001ff80 by main thread:
    #0 realloc
    #1 rcl_clock_remove_jump_callback
    #2 std::_Sp_counted_deleter<rclcpp_action::Server<Fibonacci>*, rclcpp_action::create_server<...>::{lambda}>::_M_dispose()
    ...
    #7 std::shared_ptr<rclcpp_action::Server<Fibonacci>>::~shared_ptr()

  Previous write of size 8 at 0x72480001ff80 by thread T27 (mutexes: write M0, write M1):
    #0 realloc
    #1 rcl_clock_add_jump_callback

  Mutex M1 created at:
    #1 rclcpp::TimeSource::attachClock(std::shared_ptr<rclcpp::Clock>)

With no sanitizer, this was caught in user code as a crash from intermittent heap corruption on about 1 in 50 runs.

Additional information

Only on jazzy and only for events based executors (experimental and cbg), as kilted onward fixed action goal expiration for events executors without its own dedicated expiration thread.

Users can work around this until a fix is implemented by holding node->get_clock()->get_clock_mutex() around rclcpp_action::create_server(), and around the release of the last reference to an action server

Lenguaje dominante
C++
Estrellas
815
Forks
572
Merge medio
6 d 8 h
PR fusionados (30 d)
20

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ros2/rclcpp

Todos los issues de ros2/rclcpp

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.