ros2/rmw_cyclonedds

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