-
Notifications
You must be signed in to change notification settings - Fork 33
Connext is very slow to shutdown #325
Comments
We have seen this also when testing with AXCIOMA, deleting a domain participant can take some time with RTI Connext DDS |
From @brawner: The rclcpp unit tests take significantly longer for rmw_connext_cpp than other middleware implementations. Compare ConnextDDS unit tests with rclcpp (11 minutes) vs FastRTPS (1 min 30 s): I've narrowed this down to the destruction of the rclcpp::Node, a call to destruct a waitable takes the vast majority of this time. I believe this is happening in AllocatorMemoryStrategy, but since it uses shared_ptrs, the actual destruct may be elsewhere. |
@brawner I've assigned you to this for any follow-up work to determine exactly where the destruction slowness is coming from. If it turns out to be in Connext code, and there is nothing we can do about it, then I'll suggest opening a Known Issue on https://index.ros.org/doc/ros2/Releases/Release-Rolling-Ridley/ (and maybe the other distributions as well). |
It appears deleting the participant is the main hangup here. This line takes all 3.18 seconds of node destruction.
A couple of forum posts, but I'm not sure they help me understand the issue any better. |
There's one thing in there that is potentially helpful; it seems like the delays can come because However, since we don't have the source to Connext, figuring that out may be tricky. |
Hi Chris - I'm not certain if this has already been explored, but there is a QoS setting for shutdown period: |
Resolves #184. With some RMW implementations, like rmw_connext_cpp, it takes a bit longer to initialize or shutdown ROS nodes. Related issue: ros2/rmw_connext#325 Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Resolves #184. With some RMW implementations, like rmw_connext_cpp, it takes a bit longer to initialize or shutdown ROS nodes. Related issue: ros2/rmw_connext#325 Signed-off-by: Jacob Perron <jacob@openrobotics.org>
I didn't know about that one. Thanks for the heads-up, I'll give it a try and see if it makes a difference to this problem. |
Resolves #184. With some RMW implementations, like rmw_connext_cpp, it takes a bit longer to initialize or shutdown ROS nodes. Related issue: ros2/rmw_connext#325 Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Bug report
Required Info:
Steps to reproduce issue
Expected behavior
Talker starts up, publishes some data, then quickly goes away when the user hits Ctrl-C.
Actual behavior
Talker starts up, publishes some data, then takes at least 3 seconds (sometimes longer) to go away after the user hits Ctrl-C.
Additional information
This seems to get worse with the number of nodes in the process. For the composition demos, for instance, it almost seems like it takes 3-5 seconds for each node loaded into the process.
The text was updated successfully, but these errors were encountered: