Skip to content

Unhandled Terminate w/ Services Over Wifi Network #1253

@connoranderson

Description

@connoranderson

Relates to #1017

Bug report

Required Info:

  • Operating System:
    • Ubuntu 20.04
  • Installation type:
    • binaries
  • Version or commit hash:
    • Latest galactic
  • DDS implementation:
    • Fast-RTPS
  • Client library (if applicable):
    • rclcpp

Steps to reproduce issue

I'm able to reproduce this intermittently both in CI as well as on real wireless devices, and it does not reproduce on cyclonedds. To replicate the behavior we see in real life, I issue service calls quickly over a WIFI network.

On machine 1
ros2 run demo_nodes_cpp add_two_ints_server

On machine 2, connected via WIFI to machine 1
seq 1 25 | parallel -j 25 ros2 run demo_nodes_cpp add_two_ints_client &

It's not 100% of the time, but using this setup over a wifi-based network, I'm able to reproduce the exact error we see in the wild.

Expected behavior

No terminations

Actual behavior

terminate called after throwing an instance of 'rclcpp::exceptions::RCLError' what(): failed to send response: client will not receive response, at /tmp/binarydeb/ros-galactic-rmw-fastrtps-shared-cpp-5.0.1/src/rmw_response.cpp:129, at /tmp/binarydeb/ros-galactic-rcl-3.1.2/src/rcl/service.c:287

Additional information

Doesn't break on CycloneDDS. Doesn't break when run locally with both nodes on the same host.

Metadata

Metadata

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