Skip to content

introspection API to verify delivery methods (intra-process and loaned-message) at runtime #3153

@fujitatomoya

Description

@fujitatomoya

Description

ROS 2 offers two advanced delivery paths

  • intra-process communication (IPC) via IntraProcessManager
  • inter-process loaned messages via the RMW shared-memory path

but neither has any user-facing way to verify that it is actually being used at runtime.
both fall back silently when conditions aren't met, and the only ways to confirm correct setup today require code modification, full LTTng tracing, or both.
this proposal asks for a small introspection API in rclcpp or underlying rcl/rmw implementation that surfaces enough state to answer "is this publisher/subscription pair actually communicating with via LoanedMessage or Intra-Process bypass?" from outside the publishing/subscribing code itself.

Motivation

it is likely for users and developers to make sure the message delivery can be established either intra-process or LoanedMessage as user configures and specifies at runtime. without having this capability, it would be hard for users to evaluate the communication path between the endpoints at runtime.

Design / Implementation Considerations

Expose runtime-introspectable state from the actual communication path.
probably we could add per-endpoint flags reachable from SubscriptionBase, and that information should include the publisher endpoint GID that user can check it at runtime.

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions