ros2 / rmw_cyclonedds

ROS 2 RMW layer for Eclipse Cyclone DDS
Apache License 2.0
108 stars 89 forks source link

[rmw_cyclonedds] Improve handling of dynamic discovery #429

Closed gbiggs closed 1 year ago

gbiggs commented 1 year ago

This PR adds to rmw_cyclonedds functionality necessary to support the improved handling of dynamic discovery.

It adds handling of the new discovery parameters passed down from rcl.

Current status: The desired functionality is only partially complete. Some of the entries in the goal matrix are not working correctly.

ros-discourse commented 1 year ago

This pull request has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/ros-2-tsc-meeting-minutes-2023-02-16/29927/1

sloretz commented 1 year ago

EDIT seems to be solved by https://github.com/ros2/ros2/pull/1402

@eboasson Any ideas why with automatic discovery range set to localhost, all these errors would show up on windows? The error WSAEADDRNOTAVAIL shows up while cyclone is trying to send a UDP packet.

[test_subscriber-9] 1680304639.633310 [1]        tev: slortez: WSAEADDRNOTAVAIL (or fall through from WSAEFAULT)slortez: WSAEAFNOSUPPORT (or fall through from WSAEADDRNOTAVAIL)ddsi_udp_conn_write to udp/127.0.0.1:7660 failed with retcode -3

The number seems to vary, but the later tests have 119 ports tried, which seems to match the maximum participant index. It's almost like on Windows there's an issue sending the discovery packets to other potential participants.

The job was built with the following commit with extra log messages in cyclone https://ci.ros2.org/job/ci_windows/19050/testReport/junit/(root)/projectroot/test_publisher_subscriber__rclpy__rmw_cyclonedds_cpp/

https://github.com/sloretz/cyclonedds/commit/c1b549b4d0f34d5f0927b44ea069dbe96904f8f8