[Jazzy] action server registers clock jump callbacks without the clock mutex (heap corruption)
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 44/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- C++
- Star
- 815
- Fork
- 572
- Merge trung bình
- 6 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 20
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ros2/rclcpp
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
EventsCBGExecutor timers on ROS time stall after a backward /clock jumpCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Late /clock delivery under use_sim_time stalls node now() for ~0.33 s (found via ros2_control controller time)Có thể đã có người làm @JeremiahM37 đã nhận hôm nay. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 10/100
ros2/rclcpp#3329 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
:farmer: Flaky EventsCBGExecutor test: reentrant callback group fails to run callbacks concurrentlyĐang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Copy constructor exception leaks intra-process message allocationCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
os:Linux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
acceptable_buffer_backends: unknown backend names are silently ignoredCó thể đã có người làm @mini-1235 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
ros2/rmw_fastrtps#945 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bot-triaged module: correctness (silent) module: mps module: NaNs and Infs triage review
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
README: CI link/badge checkĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
SCIInstitute/SCIRun#2842 ·
Maintainer thường phản hồi trong vòng 3 ngày