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

Improve service discovery #191

Open
hidmic opened this issue May 29, 2020 · 2 comments
Open

Improve service discovery #191

hidmic opened this issue May 29, 2020 · 2 comments
Labels
enhancement New feature or request

Comments

@hidmic
Copy link
Contributor

hidmic commented May 29, 2020

Feature request

Feature description

Follow-up issue after #187. Prior to that PR, services' discovery would rely on built-in request/reply topics discovery, which can and did lead to races (see ros2/ros2#922). A short-term workaround was then introduced by #187, but not without caveats i.e. blocking behavior of rmw_send_response, non-standard exchange IDs.

OMG DDS-RPC 1.0 spec describes both the issues associated with independent discovery of request/reply topics (see Basic Service Mapping under section 7.6.1) and an algorithm to prevent them (see Enhanced Service Mapping under section 7.6.2). Services' implementation in rmw_cyclonedds_cpp could and probably should move in that direction -- solving #184 in the process if ros2/rmw_fastrtps#392 is simultaneously addressed.

@eboasson
Copy link
Collaborator

Just FYI: there are currently no plans for adding DDS-RPC to Cyclone DDS — the project has to make choices and this is simply not high up on the prriority list. (One never knows what the future may bring, perhaps someone decides to do the work and contribute it, and that of course would completely change the situation.) What is high on the priority list is providing an interface that allows for an elegant solution to avoiding the race conditions in service invocation.

@hidmic
Copy link
Contributor Author

hidmic commented May 29, 2020

Even if compliance with DDS-RPC cannot be achieved, the discovery algorithm it suggests would provide for the behavior we expect. Some of your suggestions in #187 do not fall far from the tree either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants