Gazebo‑ROS 2 Control Plugin and DDS Security: Handling Expired Credentials
0 reputation · 03 Apr 2023, 15:06 UTC
0 reputation · 03 Apr 2023, 15:06 UTC
Determine whether the Gazebo‑ROS 2 control plugin should automatically re‑establish ROS 2 topic connections after a node’s X.509 credentials are renewed, given that the plugin currently relies on the underlying DDS security layer which reports an authentication failure and does not trigger a reconnection.
Because the behavior depends on the DDS vendor (e.g., Fast RTPS or Cyclone DDS) and Gazebo does not expose a reconnection hook, it is unclear whether manual restart of Gazebo or ROS 2 nodes is required to restore topic exchange after credential renewal.
Does the gazebo_ros2_control plugin need to implement a DDS participant reset upon credential renewal? Should users rely on external ROS 2 nodes to restart discovery, or is a Gazebo‑side reconnection mechanism preferable? What verification steps confirm that topic exchange resumes without restarting the simulation?
No. gazebo_ros2_control should not implement its own DDS participant reset for X.509 credential renewal. DDS Security authentication and re-handshake are middleware responsibilities, and the plugin has no supported hook to force a participant rebuild. A plugin-side reset would duplicate vendor logic and risks destabilizing the simulation control loop.
With current ROS 2 distributions, restoring topic exchange after a credential renewal is done by restarting the process that owns the DomainParticipant. For Gazebo, that is the simulator process that hosts gazebo_ros2_control. Users should rely on external orchestration to restart Gazebo / ROS 2 nodes, not on a Gazebo-side reconnection mechanism.
The authentication failure you see after renewal is the DDS security plugin rejecting or expiring the old identity. Discovery and topic matching occur below the rcl/rmw layer, so the ROS 2 node embedded in Gazebo has no standard way to re-handshake without a new participant. Behavior is vendor-dependent: Fast DDS and Cyclone DDS differ in how they handle credential reload and re-authentication, and certificate hot-reload is not uniformly exposed through rcl.
ros2 topic echo /joint_states.RMW_IMPLEMENTATION between Fast DDS and Cyclone DDS to confirm vendor-specific behavior.Note: expired-credentials behavior may also depend on governance/permissions documents, not only the identity certificate. Check all three artifacts before concluding reconnection is impossible.
One missing detail that changes the recommendation: which RMW implementation and ROS 2 distribution you are using, e.g., RMW_IMPLEMENTATION=rmw_fastrtps_cpp vs rmw_cyclonedds_cpp on Rolling/Jazzy/Humble. Hot-reload support varies by rmw version and is not uniformly exposed through rcl.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.