Open tonynajjar opened 3 months ago
Looking a bit around, could it be related to having multiple network interfaces?
https://github.com/ros2/rmw_cyclonedds/issues/455 https://github.com/ros2/rmw_cyclonedds/issues/459 https://github.com/eclipse-cyclonedds/cyclonedds/issues/1915 https://github.com/eclipse-cyclonedds/cyclonedds/issues/1190 https://github.com/eclipse-cyclonedds/cyclonedds/issues/1422
Facing same error on Ubuntu 20.04 and ROS Foxy.
I am having same issue but this is with a C program that uses cyclonedds 0.11 (ie not a ROS2 program). arm Ubuntu 20.04. It passes this xml to the dds_create_domain() function:
<General><AllowMulticast>false</AllowMulticast><Interfaces><NetworkInterface name="lo"/><NetworkInterface name="eth0"/></Interfaces></General><Domain><Discovery><ParticipantIndex>auto</ParticipantIndex><Peers><Peer Address="127.0.0.1"/><Peer Address="192.168.1.114"/></Peers></Discovery></Domain>
I also tried <Peers AddLocalhost="true">
and did not put the loopback address in the <Peer>
list. I get the same error.
Cyclone outputs a bunch of lines that look like these:
1725464190.844856 [0] tev: ddsi_udp_conn_write to udp/192.168.1.114:7414 failed with retcode -3 1725464190.844917 [0] tev: ddsi_udp_conn_write to udp/192.168.1.114:7416 failed with retcode -3 1725464190.844963 [0] tev: ddsi_udp_conn_write to udp/192.168.1.114:7418 failed with retcode -3
Error I get
Details
I'm running ROS humble using cyclonedds on 2 computers.
The computers connected via ethernet. The ethernet interface of Computer 1 is called
eth0
and the one of Computer 2 is calledenp89s0
. I can ping them and I can even receive udp packets when runningecho "Test message" | nc -u -w1 192.168.0.51 7648
so I know the ports are not blocked. One more detail, the ROS nodes are running in docker containers but they share the host's network so that shouldn't be a source of problem as far as I know.Computer 1
Computer 2
I'd really appreciate the help, I'm trying to switch from FastDDS as it's causing issues and I wouldn't like to give up on Cyclone as well. Thanks