Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ros2 node list hangs when a node is on another machine on Windows and ROS_DOMAIN_ID is used #713

Open
sloretz opened this issue May 11, 2022 · 5 comments
Labels
bug Something isn't working

Comments

@sloretz
Copy link
Contributor

sloretz commented May 11, 2022

Bug report

Required Info:

  • Operating System:
    • Windows 10
  • Installation type:
    • binaries
  • Version or commit hash:
    • https://ci.ros2.org/view/packaging/job/packaging_windows/2478/
  • DDS implementation:
    • default
  • Client library (if applicable):
    • N/A

Steps to reproduce issue

On a linux laptop (not sure OS is important), set a ROS_DOMAIN_ID and start turtlesim_node

export ROS_DOMAIN_ID=42
ros2 run turtlesim turtlesim_node

On a Windows machine using the Binary archive, try to list the node

set ROS_DOMAIN_ID=42
ros2 node list

Expected behavior

The windows machine would list the turtlesim node.

Actual behavior

The ros2 node list command hangs forever, and does not respond to CTRL + C.

Additional information

I'm using a Windows VM on Virtual Box on Ubuntu Focal with bridged networking (machine A). The other machine (machine B) is an Ubuntu Bionic running ROS 2 nightly in a Jammy Apptainer container. I'm able to ping the other machine from the windows VM.

Running a Jammy Apptainer container on A, ros2 node list works as expected. It's only the Windows machine that can't list the node.

I could try a Humble workspace on machine B, but it's probably still similar enough.

ros2 node list returns immediately on the Windows VM when no ROS_DOMAIN_ID is set.

@sloretz sloretz added the bug Something isn't working label May 11, 2022
@sloretz
Copy link
Contributor Author

sloretz commented May 11, 2022

ros2 topic list, ros2 service list, and ros2 param list all hang in this scenario as well.

@clalancette clalancette added this to To do in Iron Irwini via automation May 26, 2022
@danzimmerman
Copy link

danzimmerman commented Sep 16, 2022

It's only the Windows machine that can't list the node.

Can confirm I'm having this problem at least on some machines, but not all.

Is there any fix/workaround/suggestions for further debugging that would be useful?

All of my machines are using Robostack conda environments.

The broken one is using ros2cli 0.18.3:

(humble) c:\Code\dbgdump>mamba list | findstr ros2cli
ros-humble-ros2cli        0.18.3           py39h4c0ac80_0    robostack-humble
ros-humble-ros2cli-common-extensions 0.1.1            py39he8739fe_0    robostack-humble

mamba_exact_broken_win11.yaml.txt

The full package plan is attached.

Machine Details

Edition	Windows 11 Home
Version	22H2
Installed on	‎5/‎12/‎2022
OS build	22622.598
Experience	Windows Feature Experience Pack 1000.22634.1000.0

DDS is rmw_fastrtps_cpp

@danzimmerman
Copy link

danzimmerman commented Sep 16, 2022

The working one is also 0.18.3

The Linux machine with all the running nodes listed in the details below is an Ubuntu Focal machine also running Humble via Robostack.

(humble) c:\code>mamba list | findstr ros2cli
ros-humble-ros2cli        0.18.3           py39h4c0ac80_0    robostack-humble
ros-humble-ros2cli-common-extensions 0.1.1            py39he8739fe_0    robostack-humble

Package list attached.

mamba_exact_working_win11.yaml.txt

Results ros2 topic list

(humble) c:\code>ros2 topic list
/attached_collision_object
/collision_object
/display_contacts
/display_cost_sources
/display_planned_path
/dynamic_joint_states
/force_torque_sensor_broadcaster/transition_event
/force_torque_sensor_broadcaster/wrench
/forward_position_controller/commands
/forward_position_controller/transition_event
/io_and_status_controller/io_states
/io_and_status_controller/robot_mode
/io_and_status_controller/robot_program_running
/io_and_status_controller/safety_mode
/io_and_status_controller/tool_data
/io_and_status_controller/transition_event
/joint_state_broadcaster/transition_event
/joint_states
/monitored_planning_scene
/motion_plan_request
/parameter_events
/planning_scene
/planning_scene_world
/robot_description
/robot_description_semantic
/rosout
/scaled_joint_trajectory_controller/joint_trajectory
/scaled_joint_trajectory_controller/state
/scaled_joint_trajectory_controller/transition_event
/servo_node/collision_velocity_scale
/servo_node/condition
/servo_node/delta_joint_cmds
/servo_node/delta_twist_cmds
/servo_node/publish_planning_scene
/servo_node/status
/servo_node/worst_case_stop_time
/speed_scaling_state_broadcaster/speed_scaling
/speed_scaling_state_broadcaster/transition_event
/tf
/tf_static
/trajectory_execution_event

(humble) c:\code>set | findstr ROS
ROS_DISTRO=humble
ROS_DOMAIN_ID=17
ROS_ETC_DIR=C:\Users\<username>\mambaforge\envs\humble\Library\etc\ros
ROS_LOCALHOST_ONLY=0
ROS_OS_OVERRIDE=conda:win64
ROS_PYTHON_VERSION=3
ROS_VERSION=2

Machine Details

Edition	Windows 11 Home
Version	21H2
Installed on	‎11/‎13/‎2021
OS build	22000.856
Experience	Windows Feature Experience Pack 1000.22000.856.0

DDS is rmw_fastrtps_cpp

@clalancette clalancette removed this from To do in Iron Irwini Mar 27, 2023
@cmastalli
Copy link

Can confirm I'm having this problem at least on some machines, but not all.

I confirm this issue in my MacBook Pro M2 machine. I am also using Robostack. Are there any updates regarding this issue?

@130s
Copy link

130s commented Jun 30, 2023

I know this ticket is for external-host scenario though, on the same single host scenario I just saw a similar issue. Easily reproducible with a Docker image (see "Steps to reproduce" section in moveit/moveit2_tutorials#713) then run ros2 param list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants