cyclonedds over loopback device having issues when wifi interface is active
PeterQFR opened this issue · 3 comments
Bug report
Required Info:
- Operating System:
Ubuntu 22.04 - Installation type:
Galactic - Version or commit hash:
As per upstream. - DDS implementation:
cyclonedds - Client library (if applicable):
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.
This example crashed just as the node was starting:
wifi_conn_short.log
This example crashed a little way in.
wifi_conn.log
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?
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