From 14eb768bb7b0caa9c3b2ecf7400b293ce3dab788 Mon Sep 17 00:00:00 2001 From: ivanpauno Date: Tue, 17 Sep 2019 13:37:45 -0300 Subject: [PATCH 1/2] Handle find_container_node_names error (#322) Signed-off-by: ivanpauno --- ros2component/ros2component/api/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ros2component/ros2component/api/__init__.py b/ros2component/ros2component/api/__init__.py index 78f1deacb..e8c821263 100644 --- a/ros2component/ros2component/api/__init__.py +++ b/ros2component/ros2component/api/__init__.py @@ -201,7 +201,10 @@ def find_container_node_names(*, node, node_names): """ container_node_names = [] for n in node_names: - services = get_service_info(node=node, remote_node_name=n.full_name) + try: + services = get_service_info(node=node, remote_node_name=n.full_name) + except rclpy.node.NodeNameNonExistentError: + continue if not any(s.name.endswith('_container/load_node') and 'composition_interfaces/srv/LoadNode' in s.types for s in services): From feadd28dd588268b101e9cd7cb101acb0fc10bf4 Mon Sep 17 00:00:00 2001 From: Jacob Perron Date: Thu, 26 Sep 2019 12:11:56 -0700 Subject: [PATCH 2/2] Catch generic RuntimeError instead Since rclpy.node.NodeNameNonExistentError is not defined in Dashing. Signed-off-by: Jacob Perron --- ros2component/ros2component/api/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros2component/ros2component/api/__init__.py b/ros2component/ros2component/api/__init__.py index e8c821263..639195d37 100644 --- a/ros2component/ros2component/api/__init__.py +++ b/ros2component/ros2component/api/__init__.py @@ -203,7 +203,7 @@ def find_container_node_names(*, node, node_names): for n in node_names: try: services = get_service_info(node=node, remote_node_name=n.full_name) - except rclpy.node.NodeNameNonExistentError: + except RuntimeError: continue if not any(s.name.endswith('_container/load_node') and 'composition_interfaces/srv/LoadNode' in s.types