ros2 param list does not work with multiple rmw implementaion
See original GitHub issueBug 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 andros2 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 andros2 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 crash
https://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.
Issue Analytics
- State:
- Created 3 years ago
- Comments:9 (2 by maintainers)
Top Results From Across the Web
Working with multiple ROS 2 middleware implementations
It is possible to run into a problem when “rebuilding” the workspace with an additional RMW implementation using the --cmake-force-configure option where ...
Read more >Get Started with ROS 2 - MATLAB & Simulink - MathWorks
Configure the Python™ environment in the ROS Toolbox Preferences dialog box and select an implementation from the ROS Middleware (RMW) Implementation dropdown ...
Read more >ROS2 Concepts in Practice #3 - DDS/RTPS - The Construct
That is quite easy. After running ros2 topic list, a ROS2 Daemon will be launched and in the command line, you will see...
Read more >include/rmw/rmw.h File Reference - ROS 2 Docs
This should be defined by the rmw implementation. Parameters. [in], context, init context that this node should be associated with. [in], name ...
Read more >ROS 2 Interface - Create® 3 Docs
The Create® 3 robot is based on ROS 2 and, as such, it exposes all its ... with additional arguments ros2 topic list...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Seems like a deserialization exception we are not capturing. I will take a look.
since https://github.com/eProsima/Fast-CDR/pull/98 and https://github.com/ros2/rmw_fastrtps/pull/505 are merged, the rest is to update documentation which tells that services do not work cross-vendor rmw implementation. i will assign to this on me.