-
Notifications
You must be signed in to change notification settings - Fork 110
Description
Bug report
Overview: While monitoring the LAN in/out throughput on my router, I launch a publisher on my local machine, followed by one subscriber (ros2 topic echo ...), followed by a second subscriber (ros2 topic echo ...). As soon as I launch the second subscriber, my router registers packets going through the LAN corresponding to the throughput of the topic, even though all publishers and subscribers are running on the local machine.
Required Info:
- Operating System:
- Ubuntu 22.04.4 (jammy) LTS
- Installation type:
- binary
- Version or commit hash:
- 1.3.4-1jammy.20240217.062033
- DDS implementation:
- CycloneDDS
- Client library (if applicable):
- N/A
Steps to reproduce issue
Reproducing this issue requires a way to monitor router LAN throughput; I use NetCloud OS for the Cradlepoint IBR900-600M router. Additionally, this issue is most pronounced when the topic has high throughput; thus, for the publisher I use the DummyRealSense node from this package, and its raw aligned color to depth image.
While monitoring LAN in/out throughout of your router, do:
ros2 daemon stop- In every terminal:
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp - In one terminal, run the publisher:
ros2 launch feeding_web_app_ros2_test feeding_web_app_dummy_nodes_launch.xml run_web_bridge:=false run_food_detection:=false run_face_detection:=false run_food_on_fork_detection:=false run_motion:=false - After a few seconds, run the first subscriber:
ros2 topic echo /camera/aligned_depth_to_color/image_raw | grep sec - After a few seconds, run the second subscriber:
ros2 topic echo /camera/aligned_depth_to_color/image_raw | grep sec - After a few seconds, terminate the second subscriber.
- After a few seconds, terminate the first subscriber.
- After a few seconds, terminate the publisher.
- After a few seconds, turn off the ROS2 daemon:
ros2 daemon stop - In every terminal:
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp - Repeat steps 3-8
Expected behavior
LAN in/out throughput should be near 0 Mbps the entire time.
Actual behavior
While using CycloneDDS, after we launch the second subscriber, the LAN throughput jumps up to the throughput of the topic (~70 Mbps). Terminating the second subscriber brings it back down. This issue does not happen with FastRTPS. See the below screenshot for LAN throughput with annotated timestamps corresponding to the above steps.
Additional information
- The device I'm running ROS2 on is connected to the router via ethernet, but the only ROS2 nodes that are running are on the local machine.
- This issue might be related to CycloneDDS hangs when the network interface switches to loopback #488 .