[Jazzy] action server registers clock jump callbacks without the clock mutex (heap corruption)
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 44/100
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
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_callbackwhich callsrcl_clock_add_jump_callbackunder the clock mutex ServerBase's constructor which callsrcl_clock_add_jump_callbackwithout 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
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ros2/rclcpp
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
EventsCBGExecutor timers on ROS time stall after a backward /clock jumpPosiblemente ocupada @Yadunund la tomó hace 6 días. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
Los mantenedores suelen responder en 1 día
-
Late /clock delivery under use_sim_time stalls node now() for ~0.33 s (found via ros2_control controller time)Posiblemente ocupada @JeremiahM37 la tomó hace 4 días. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
ros2/rclcpp#3329 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
:farmer: Flaky EventsCBGExecutor test: reentrant callback group fails to run callbacks concurrentlyAbiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Copy constructor exception leaks intra-process message allocationPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de ros2/rclcpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
ROCm/rocm-libraries#14027 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Qiskit/qiskit-aer#2487 ·
Los mantenedores suelen responder en 1 día
-
GUI
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
qbittorrent/qBittorrent#25104 ·
Los mantenedores suelen responder en 2 días
-
P2: A timed rotation maneuver does nothing on a ship that had an earlier timed lateral maneuverAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
scp-fs2open/fs2open.github.com#7914 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días