ros2 / ros2/ros2cli

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

Open
#713 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

backlog
Dominant language
Python
Stars
262
Forks
228
Avg merge
23h 15m
Merged PRs (30d)
12

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing ros2 node list with ROS_DOMAIN_ID=42 on Windows while the remote Linux machine runs turtlesim_node. Compare the Windows behavior with and without ROS_DOMAIN_ID, and with the container on machine A. Done means the Windows command returns promptly and lists the remote node, including responding to Ctrl+C if discovery fails.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.