ros2 / rmw_cyclonedds

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

cyclonedds over loopback device having issues when wifi interface is active #456

Closed PeterQFR closed 1 year ago

PeterQFR commented 1 year ago

Bug report

Required Info:

Steps to reproduce issue

Ensure have 3 interfaces on machine eth0 wlo1 lo

Ensure lo is MULTICAST Ensure ROS_LOCALHOST_ONLY=1 Ensure that cyclone dds is configured net.core.rmem_max=2147483647

Run a node that produces reasonably sized images 720p or less at 30hz or less

Expected behavior

My node gets those images from a Luxonis DepthAI sensor, which can fail if the image data is not read from the device fast enough. My reading time is depends on the ability to send the image, now when using wifi, this is slow and leads to crashing.

As a result I have used in the past ROS_LOCALHOST_ONLY=1 because I only need the data locally. This is tested on a 20.04 machine with the same settings (as far as I can remember) resulting in no crashing as the lo interface handles all the traffic.

Actual behavior

However with the new 22.04 system, I get crashing of the node if I connect and run the node remotely via an ssh session, but only if I run it via a wifi connection.

If I run the ssh session via eth0 connection, I dont have a problem.

If I run the node without ssh, but trigger it via a webserver connected by wifi I get crashing too.

Additional information

Will add output logs as described in the readme.md below

Is there some way to absolutely, positively ensure data only goes across the loopback device and nothing else.

PeterQFR commented 1 year ago

This example crashed just as the node was starting: wifi_conn_short.log

This example crashed a little way in. wifi_conn.log

PeterQFR commented 1 year ago

Looking at those files, it sets up the localhost and the multicast address. Could the multicast address be sending across any connected multicast interfaces, such as wifi which is configured a multicast?

PeterQFR commented 1 year ago

Actually, this might not be related to cyclonedds at all, but due to the camera cable. Closing and will reopen if things point to cyclonedds