Skip to content

ros2 param list does not work with multiple rmw implementaion #586

@fujitatomoya

Description

@fujitatomoya

Bug report

  • Operating System:
    • Ubuntu 20.04
  • Installation type:
    • source code
  • Version or commit hash:
  • DDS implementation:
    • multiple rmw implementation Fast-DDS and Cyclonedds
  • Client library (if applicable):
    • rclcpp and rclpy

Steps to reproduce issue

  • talker with cyclonedds and ros2 param list with fastdds

it seems that talker does not even receive the service request from client.

[Terminal - 1]
root@5c7a784cba7f:~/ros2_ws/colcon_ws# ros2 run demo_nodes_cpp talker
[INFO] [1611218728.615967478] [talker]: Publishing: 'Hello World: 1'
[INFO] [1611218729.615458541] [talker]: Publishing: 'Hello World: 2'
...<snip>

[Terminal - 2]
root@5c7a784cba7f:~/ros2_ws/colcon_ws# RMW_IMPLEMENTATION=rmw_fastrtps_cpp ros2 param list
Exception while calling service of node '/talker': None
  • talker with fastdds and ros2 param list with cyclonedds

this could be security issue since we can crash the node via parameter request.

[Terminal - 1]
root@5c7a784cba7f:~/ros2_ws/colcon_ws# RMW_IMPLEMENTATION=rmw_fastrtps_cpp ros2 run demo_nodes_cpp talker
[INFO] [1611218853.091887892] [talker]: Publishing: 'Hello World: 1'
[INFO] [1611218854.091851082] [talker]: Publishing: 'Hello World: 2'
[INFO] [1611218855.091853219] [talker]: Publishing: 'Hello World: 3'
[INFO] [1611218856.091876166] [talker]: Publishing: 'Hello World: 4'
[INFO] [1611218857.091860947] [talker]: Publishing: 'Hello World: 5'
[INFO] [1611218858.091872255] [talker]: Publishing: 'Hello World: 6'
[INFO] [1611218859.091883693] [talker]: Publishing: 'Hello World: 7'
[INFO] [1611218860.091857624] [talker]: Publishing: 'Hello World: 8'
[INFO] [1611218861.091900999] [talker]: Publishing: 'Hello World: 9'
[INFO] [1611218862.091897370] [talker]: Publishing: 'Hello World: 10'
[INFO] [1611218863.091898792] [talker]: Publishing: 'Hello World: 11'
[INFO] [1611218864.091924685] [talker]: Publishing: 'Hello World: 12'
[INFO] [1611218865.091936687] [talker]: Publishing: 'Hello World: 13'
[INFO] [1611218866.091938711] [talker]: Publishing: 'Hello World: 14'
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

[Terminal - 2]
root@5c7a784cba7f:~/ros2_ws/colcon_ws# ros2 param list
root@5c7a784cba7f:~/ros2_ws/colcon_ws# ros2 param list
root@5c7a784cba7f:~/ros2_ws/colcon_ws# ros2 param list
Exception while calling service of node '/talker': None

Expected behavior

able to get parameter list for both cases

root@5c7a784cba7f:~/ros2_ws/colcon_ws# ros2 param list
/talker:
  use_sim_time

Actual behavior

either unable to parameter list or application core crashhttps://index.ros.org/doc/ros2/Tutorials/Working-with-multiple-RMW-implementations/#multiple-rmw-implementations

Additional information

according to https://index.ros.org/doc/ros2/Tutorials/Working-with-multiple-RMW-implementations/#multiple-rmw-implementations, there is no constraints / limitation between cyclonedds and fastdds.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions