ADLINK-IST/opensplice

UDP make_socket failed error in QEMU

Closed this issue · 2 comments

I am attempting to run a simple ROS2 publisher and subscriber on FreeBSD in QEMU.

When I have either the publisher or subscriber running and then attempt to start the other one, I get the following error message:

UDP make_socket failed for multicast port 7400, which appears to arise from the following code snippet:

NN_ERROR2
(
"UDP make_socket failed for %s port %d\n",
mcast ? "multicast" : "unicast",
port
);

I then get an error message specific to cyclone dds, which incorporates ddsi_udp:

rmw_create_node: failed to create domain, error Error, which appears to come from the following code snippet:

https://github.com/ros2/rmw_cyclonedds/blob/5c6b187fa948d206c1e8cb90fd319258819a32fc/rmw_cyclonedds_cpp/src/rmw_node.cpp#L677-L680

I would be grateful for some suggestions to narrow down the possible causes of this issue, since I'm not sure whether it's related to FreeBSD, QEMU, or my cross-compile toolchain.

I have been able to run a simple multicast communication test between the host and emulated environment, and ifconfig shows MULTICAST tags for both the le0 and lo0 interfaces in the emulated environment.

I'll also note that the exact same code base compiled for Ubuntu works just fine on the host machine.

Hi Dodsonmg,
It looks like cyclonedds error, Please log the error to cyclonedds forum, url is given below:
https://github.com/ros2/rmw_cyclonedds