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

Services are broken if using connext micro #128

Closed
cwecht opened this issue Jul 31, 2023 · 0 comments · Fixed by #130
Closed

Services are broken if using connext micro #128

cwecht opened this issue Jul 31, 2023 · 0 comments · Fixed by #130
Assignees

Comments

@cwecht
Copy link
Contributor

cwecht commented Jul 31, 2023

System Info

Bug Description

ROS2 service clients are unable to detect any available (matching) service instance.

Expected Behavior

ROS2 service clients should be able to detect available (matching) service instances.

How to Reproduce

  1. setup a workspace with the following layout:
  • rmw_connext_ws
    • rti_connext_dds-6.1.2 (containing the whole Pro package as well as the micro package in rti_connext_dds_micro-3.0.3.28)
    • src/rmw_connextdds
  1. put COLCON_IGNORE in rmw_connext_ws/rti_connext_dds-6.1.2
  2. run docker run -it -v $PWD:/home -w /home osrf/ros:humble-desktop in rmw_connext_ws
  3. run source ./rti_connext_dds-6.1.2/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash
  4. run colcon build
  5. run source install/setup.bash
  6. run export RMW_IMPLEMENTATION=rmw_connextddsmicro
  7. run export RMW_CONNEXT_INITIAL_PEERS="_shmem://, 127.0.0.1"
  8. run ros2 run examples_rclcpp_minimal_service service_main & ros2 run examples_rclcpp_minimal_client client_main

This will result in this error:
grafik

Workarounds

The issues stems (at least partially) from the fact that RMW_Connext_Client::is_service_available uses

  • DDS_DataWriter_get_matched_subscriptions
  • DDS_DataWriter_get_matched_publications

which are both only implemented as stubs in connext micro: both will usually return DDS_RETCODE_UNSUPPORTED.

Inspired by https://github.com/ros2/rmw_connext/blob/5557440c0a16dd272812587f17801975a7fa7632/rmw_connext_cpp/src/rmw_service_server_is_available.cpp#L93 I could come up with cwecht@969171a .

With that fix there is no error anymore but the service is found.

Please note that I also head to adjust the RMW_CONNEXT_LIMIT_DEFAULT_MAX to 256 (32 and 64 didn't work).

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

Successfully merging a pull request may close this issue.

2 participants