Skip to content

Data races in update_and_get_used_by_rt_list()/update() (controller_manager.cpp:2241, 2186) #3083

@Finder16

Description

@Finder16

• ## Summary
ThreadSanitizer reports data races in controller_manager::ControllerManager during concurrent control-cycle updates.

Affected Location

  • controller_manager/src/controller_manager.cpp:2241
    • ControllerManager::RTControllerListWrapper::update_and_get_used_by_rt_list()
  • controller_manager/src/controller_manager.cpp:2186
    • ControllerManager::update(rclcpp::Time const&, rclcpp::Duration const&)

Observed Result

ThreadSanitizer reports concurrent writes in both paths.

WARNING: ThreadSanitizer: data race (pid=413)                                                                                                          
  Write of size 4 ...                                                                                                                                  
    #0 ...update_and_get_used_by_rt_list() .../controller_manager.cpp:2241                                                                             
  Previous write of size 4 ...                                                                                                                         
    #0 ...update_and_get_used_by_rt_list() .../controller_manager.cpp:2241                                                                             
SUMMARY: ThreadSanitizer: data race .../controller_manager.cpp:2241 in ...update_and_get_used_by_rt_list()                                             
                                                                                                                                                       
WARNING: ThreadSanitizer: data race (pid=413)                                                                                                          
  Write of size 4 ...                                                                                                                                  
    #0 controller_manager::ControllerManager::update(...) .../controller_manager.cpp:2186                                                              
  Previous write of size 4 ...                                                                                                                         
    #0 controller_manager::ControllerManager::update(...) .../controller_manager.cpp:2186                                                              
SUMMARY: ThreadSanitizer: data race .../controller_manager.cpp:2186 in controller_manager::ControllerManager::update(...)                              


Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions