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

Get ci.ros2.org to pass with rmw_zenoh #567

Open
7 tasks
Yadunund opened this issue Mar 21, 2025 · 7 comments
Open
7 tasks

Get ci.ros2.org to pass with rmw_zenoh #567

Yadunund opened this issue Mar 21, 2025 · 7 comments

Comments

@Yadunund
Copy link
Member

Yadunund commented Mar 21, 2025

After a huge effort in #493, we have all tests for all packages in the ros2.repos file passing with rmw_zenoh in local workspaces 🎉

However this required us to start the zenohd router locally which does not happen automatically when running a CI job on ci.ros2.org. The ros-infrastructure team is working on middleware agnostic mechanisms to start a pre-defined process but this may not be ready before the RMW freeze for Kilted on April 7.

A workaround in the meanwhile (to demonstrate that rmw_zenoh is indeed capable of passing CI) is to have ci.ros2.org run the usual tests with multicast scouting enabled for discovery. This would be akin to DDS-based middlewares. Once the infra tooling is in place, we can revert these changes.

The good news is that while we already have all tests for all packages passing locally, when a job runs on ci.ros2.org, tests for most packages run with the default middleware and only a select few in the ros2.repos file generate tests for every middleware found in the workspace. These packages rely on the get_available_rmw_implementations macro to retrieve all middlewares and generate tests for these middlewares. Therefore the goal is to update the tests in these repos to set environment variables to run rmw_zenoh tests with multicast discovery enabled. ie, set

export ZENOH_ROUTER_CHECK_ATTEMPTS=-1
export ZENOH_CONFIG_OVERRIDE='scouting/multicast/enabled=true'
export RUST_LOG=z=error

The packages that require changes are

For detailed failures see

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status
@YuanYuYuan
Copy link
Contributor

YuanYuYuan commented Mar 21, 2025

Hi @Yadunund! Since the previous issue has been closed, let me answer you here. We can set

export ZENOH_CONFIG_OVERRIDE='scouting/multicast/enabled=true;scouting/multicast/address="224.0.0.224:0"'

for port auto selection, but I found that more tests fail compared to generating the ports in a script.

@YuanYuYuan
Copy link
Contributor

Regarding the failures reported by CI, I suspect the rmw_zenohd router doesn't work well. See the log here.

@Yadunund
Copy link
Member Author

Regarding the failures reported by CI, I suspect the rmw_zenohd router doesn't work well. See the log here.

@YuanYuYuan to clarify, all these tests are failing because the Zenoh router has not been started before running the tests. Hence we need to add changes like ros2/rcl#1218 to these packages.

@YuanYuYuan
Copy link
Contributor

YuanYuYuan commented Mar 21, 2025

@YuanYuYuan to clarify, all these tests are failing because the Zenoh router has not been started before running the tests. Hence we need to add changes like ros2/rcl#1218 to these packages.

I see. Then let's focus on the multicast version first. Here are the tests that haven't steadily passed on a local Ubuntu.

╭───┬────────────────────╮
│ 0 │ ros2param          │
│ 1 │ lttngpy            │
│ 2 │ rosbag2_tests      │
│ 3 │ launch_testing_ros │
│ 4 │ ros2doctor         │
│ 5 │ ros2lifecycle      │
│ 6 │ ros2topic          │
╰───┴────────────────────╯

@Yadunund
Copy link
Member Author

We are down to 1 test failure on Linux/RHEL and 75 on Windows.

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@YuanYuYuan
Copy link
Contributor

YuanYuYuan commented Mar 24, 2025

Remaining test failures: https://ci.ros2.org/job/ci_windows/23718/#showFailuresLink

@Yadunund
Copy link
Member Author

Yadunund commented Mar 24, 2025

CI started with: https://raw.githubusercontent.com/ros2/ros2/3f873e9c5a79ce3b47f70199708b21c07007cd7d/ros2.repos

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

No branches or pull requests

2 participants