Bug report
Required Info:
- Operating System:
- Ubuntu 18.04, both AMD64 and ARM64
- Installation type:
- Version or commit hash:
- DDS implementation:
- Client library (if applicable):
Steps to reproduce issue
- On one terminal, run:
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 run demo_nodes_cpp add_two_ints_server
- On another terminal, run:
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 run demo_nodes_cpp add_two_ints_client_async
Expected behavior
A single service call takes place and succeeds i.e. you get logs on each terminal:
[INFO] [add_two_ints_server]: Incoming request
a: 2 b: 3
[INFO] [add_two_ints_client]: Result of add_two_ints: 5
Actual behavior
The client hangs with no output though the server does log so it appears to have received the request.
Additional information
It does not happen on rclpy. It also does not happen if bringing up both nodes via launch e.g.:
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package='demo_nodes_cpp',
node_executable='add_two_ints_server',
output='screen'
),
Node(
package='demo_nodes_cpp',
node_executable='add_two_ints_client_async',
output='screen'
)
])
So it's likely a race.
Bug report
Required Info:
Steps to reproduce issue
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 run demo_nodes_cpp add_two_ints_serverRMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 run demo_nodes_cpp add_two_ints_client_asyncExpected behavior
A single service call takes place and succeeds i.e. you get logs on each terminal:
[INFO] [add_two_ints_client]: Result of add_two_ints: 5Actual behavior
The client hangs with no output though the server does log so it appears to have received the request.
Additional information
It does not happen on
rclpy. It also does not happen if bringing up both nodes vialaunche.g.:So it's likely a race.