ros2 / ros2/launch

launch_ros_PID collisions in multi-host systems

Open
#442 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted
Dominant language
Python
Stars
155
Forks
182
Avg merge
2d 14h
Merged PRs (30d)
6

Description

Bug report

The launch_ros node uses the PID as a suffix to generate a 'unique' node name, but this is insufficient in multi host systems. I use docker swarm containers across a number of hosts with many name collisions:
image

Required Info:

  • Operating System: U20.04
  • Installation type: Binary (mostly...)
  • Version or commit hash: Foxy
  • DDS implementation: FAST_RTPS
  • Client library (if applicable): N/A
Steps to reproduce issue

Launch ROS nodes on multiple hosts at system startup, or via a docker swarm.

Expected behavior

ros2 node list should have no warnings.

Actual behavior

WARNING: Be aware that are nodes in the graph that share an exact name, this can have unintended side effects.

Additional information

I wonder if we can simply use a random alpha-numeric suffix instead?

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 tracing the launch_ros node-name generation that appends the process PID, then reproduce the collision with nodes launched across multiple hosts or Docker Swarm containers. Compare the resulting names with the expected behavior and define completion as eliminating duplicate node names and the warnings from ros2 node list in that scenario.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.