Skip to content

A topic-name typo leaves both sides healthy and silently disconnected #577

Description

@bburda

Part of #570.

Summary

One node publishes /scan_raw, another subscribes /scan_row. Both nodes are up, both report healthy, and neither is talking to the other. Nothing in ROS 2 notices, because from the graph point of view these are simply two different topics that each happen to have one side.

The same shape appears from a wrong remap in a launch file, a renamed topic where only one side was updated, or a namespace that was applied to one node and not the other.

This is hard to see by hand. ros2 topic list shows both names and they look plausible. The operator usually finds it by noticing the robot behaves as if the data never arrives, then comparing topic names character by character.

Proposed solution

Look for a topic that has publishers but no subscribers, or subscribers but no publishers, and check whether a topic with the complementary shape exists nearby: same namespace, same message type, and a name within a very small edit distance.

Two things it has to be careful about.

The fault should name both sides and say plainly that it is a candidate. The tool cannot tell a typo from a counterpart that simply has not started yet or has just exited, so it should say both possibilities rather than assert one and send someone renaming things.

It also needs a persistence requirement. During a staged bringup one side legitimately exists without the other for a while, and that looks exactly like a typo until the second node appears. Reporting on a single sweep would make this fire on every launch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions