Skip to content

rmw_cyclonedds_cpp: No interface bound to requested address '224.0.0.1' #3

@sloretz

Description

@sloretz

Looks like some of the tests the "samehost" container fails because no interface is bound to the given multicast address

It looks like all that's required is to set RMW_IMPLEMENTATION=rmw_cyclonedds_cpp, then ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST.

RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST ROS_STATIC_PEERS= ros2 run test_discovery publish_once
./test_scenario.bash <path/to/ws> rmw_cyclonedds_cpp
Attaching to iron_irwini_discovery_modes_prototype_samehost_container_1
samehost_container_1  | Same host publisher setting is LOCALHOST, static peers is 10.0.0.2;10.0.0.3
samehost_container_1  | [INFO] [1675970780.699019115] [rcl]: Automatic discovery range is RMW_AUTOMATIC_DISCOVERY_RANGE_OFF (1)
samehost_container_1  | [INFO] [1675970780.699038321] [rcl]: Static peers count is 1
samehost_container_1  | [INFO] [1675970780.699043426] [rcl]: 	10.0.0.2
samehost_container_1  | [INFO] [1675970780.699886841] [rmw_cyclonedds_cpp]: Config XML is <CycloneDDS><Domain><General><AllowMulticast>asm,ssm</AllowMulticast></General><Discovery><Peers><Peer address="10.0.0.2"/></Peers></Discovery></Domain></CycloneDDS>,
samehost_container_1  | [INFO] [1675970780.893820534] [rcl]: Automatic discovery range is RMW_AUTOMATIC_DISCOVERY_RANGE_LOCALHOST 
samehost_container_1  | [INFO] [1675970780.893839339] [rcl]: Static peers count is 2
samehost_container_1  | [INFO] [1675970780.893863233] [rcl]: 	10.0.0.2
samehost_container_1  | [INFO] [1675970780.893867414] [rcl]: 	10.0.0.3
samehost_container_1  | [INFO] [1675970780.894581896] [rmw_cyclonedds_cpp]: Config XML is <CycloneDDS><Domain><General><AllowMulticast>true</AllowMulticast><MulticastRecvNetworkInterfaceAddresses>224.0.0.1</MulticastRecvNetworkInterfaceAddresses></General><Discovery><Peers><Peer address="10.0.0.2"/><Peer address="10.0.0.3"/></Peers></Discovery></Domain></CycloneDDS>,
samehost_container_1  | 1675970780.895466 [0]       ros2: No interface bound to requested address '224.0.0.1'
samehost_container_1  | [ERROR] [1675970780.895508752] [rmw_cyclonedds_cpp]: rmw_create_node: failed to create domain, error Error
samehost_container_1  | 
samehost_container_1  | >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
samehost_container_1  | This error state is being overwritten:
samehost_container_1  | 
samehost_container_1  |   'error not set, at /home/sloretz/ws/ddsoobe/src/ros2/rcl/rcl/src/rcl/node.c:263'
samehost_container_1  | 
samehost_container_1  | with this new error message:
samehost_container_1  | 
samehost_container_1  |   'rcl node's rmw handle is invalid, at /home/sloretz/ws/ddsoobe/src/ros2/rcl/rcl/src/rcl/node.c:415'
samehost_container_1  | 
samehost_container_1  | rcutils_reset_error() should be called after error handling to avoid this.
samehost_container_1  | <<<
samehost_container_1  | [ERROR] [1675970780.895607734] [rcl]: Failed to fini publisher for node: 1
samehost_container_1  | error creating node: rcl node's rmw handle is invalid, at /home/sloretz/ws/ddsoobe/src/ros2/rcl/rcl/src/rcl/node.c:415
iron_irwini_discovery_modes_prototype_samehost_container_1 exited with code 1

Seems like the xml address is specified in the config file

<CycloneDDS>
  <Domain>
    <General>
      <AllowMulticast>true</AllowMulticast>
      <MulticastRecvNetworkInterfaceAddresses>224.0.0.1</MulticastRecvNetworkInterfaceAddresses>
    </General>
    <Discovery>
      <Peers>
        <Peer address="10.0.0.2"/>
        <Peer address="10.0.0.3"/>
      </Peers>
    </Discovery>
  </Domain>
</CycloneDDS>

Reproduce with node from ros2/system_tests#512

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions