Skip to content

Conversation

mergify[bot]
Copy link

@mergify mergify bot commented Sep 27, 2025

Description

Use the rmw_test_isolation system for creating a communication sandbox for each test.

Fixes # (issue)

Is this user-facing behavior change?

Yes, ros2cli.helpers.get_rmw_additional_env will no longer enable multicast for Zenoh.

Did you use Generative AI?

No


This is an automatic backport of pull request #1062 done by [Mergify](https://mergify.com).

Signed-off-by: Scott K Logan <[email protected]>
(cherry picked from commit 75e004a)
@Blast545
Copy link
Contributor

Running CI without this PR, trying to reproduce the problem:

Build Status

Running CI with this PR, trying to test the fix:

Build Status

@Blast545
Copy link
Contributor

Attempt to replicate number 2, this time including other packages that are raising test errors in the current Kilted release jobs. Under the assumption that maybe one of thoses are not shutting down things properly, making later this test fail.

Build Status

Copy link
Collaborator

@fujitatomoya fujitatomoya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Blast545 after all, we are not able to reproduce the flaky result?

btw, if we are backporting this, we should also take #1098?

* Enable RMW isolation for ros2doctor.test_report.

Signed-off-by: Tomoya Fujita <[email protected]>

* ResetEnvironment on shutdown is missing.

Signed-off-by: Tomoya Fujita <[email protected]>

* Clean up isolated ros2 daemon process when tests complete.

Signed-off-by: Tomoya Fujita <[email protected]>

* Clean up isolated ros2 daemon process for ros2topic.

Signed-off-by: Tomoya Fujita <[email protected]>

* Clean up isolated ros2 daemon process for ros2action.

Signed-off-by: Tomoya Fujita <[email protected]>

* Clean up isolated ros2 daemon process for ros2doctor.

Signed-off-by: Tomoya Fujita <[email protected]>

* Clean up isolated ros2 daemon process for ros2lifecycle and ros2node.

Signed-off-by: Tomoya Fujita <[email protected]>

* Clean up isolated ros2 daemon process for ros2param.

Signed-off-by: Tomoya Fujita <[email protected]>

---------

Signed-off-by: Tomoya Fujita <[email protected]>
@Blast545
Copy link
Contributor

@fujitatomoya I'll do a couple of extra attempts before giving up on replicating it. Tricky part would be trying to reproduce it on ci.ros2.org since the job with the regression it's on build.ros2.org.

I added to this PR the commit that you referenced, I'm not sure if I'm missing something from the commits that were in the middle of those two but I will give a check in a bit.

@Blast545
Copy link
Contributor

Re-running with extra commit from #1098 backported
Build Status

@Blast545 Blast545 self-assigned this Sep 30, 2025
@Blast545
Copy link
Contributor

Blast545 commented Oct 3, 2025

Extra attempt to REPLICATE the problem:
Build Status

I'm running the whole suite now that CI doesn't have a big load, and I disabled sequential tests executor, which seemed like a significant difference from the build in build.ros2.org vs the default ci.ros2.org configurations.

@Blast545
Copy link
Contributor

Blast545 commented Oct 4, 2025

I was able to replicate the problem locally using the ros_buildfarm scripts:

git clone [email protected]:ros-infrastructure/ros_buildfarm.git
cd ros_buildfarm/scripts/ci/
./generate_ci_script.py https://raw.githubusercontent.com/ros2/ros_buildfarm_config/ros2/index.yaml kilted nightly-release ubuntu noble amd64 > ci_job_kilted_all.sh
sh ci_job_kilted_all.sh

I'm taking a look to see how to modify the generated script to get access to the docker environment running the tests, and troubleshoot what's left open when the tests are run.

@cottsay
Copy link
Member

cottsay commented Oct 7, 2025

I think we're missing a backport for from Rolling to Kilted in a dependency.

@Blast545
Copy link
Contributor

Blast545 commented Oct 7, 2025

For reference, after logging into the docker image being generated and running the scripts locally, here's a list of the services that remain open before execution of this test:

/array_repeater/describe_parameters
/array_repeater/get_parameter_types
/array_repeater/get_parameters
/array_repeater/get_type_description
/array_repeater/list_parameters
/array_repeater/set_parameters
/array_repeater/set_parameters_atomically
/bounded_sequences_repeater/describe_parameters
/bounded_sequences_repeater/get_parameter_types
/bounded_sequences_repeater/get_parameters
/bounded_sequences_repeater/get_type_description
/bounded_sequences_repeater/list_parameters
/bounded_sequences_repeater/set_parameters
/bounded_sequences_repeater/set_parameters_atomically
/controller/describe_parameters
/controller/get_parameter_types
/controller/get_parameters
/controller/get_type_description
/controller/list_parameters
/controller/set_parameters
/controller/set_parameters_atomically
/defaults_repeater/describe_parameters
/defaults_repeater/get_parameter_types
/defaults_repeater/get_parameters
/defaults_repeater/get_type_description
/defaults_repeater/list_parameters
/defaults_repeater/set_parameters
/defaults_repeater/set_parameters_atomically
/listener/describe_parameters
/listener/get_parameter_types
/listener/get_parameters
/listener/get_type_description
/listener/list_parameters
/listener/set_parameters
/listener/set_parameters_atomically
/talker_node/describe_parameters
/talker_node/get_parameter_types
/talker_node/get_parameters
/talker_node/get_type_description
/talker_node/list_parameters
/talker_node/set_parameters
/talker_node/set_parameters_atomically
/unbounded_sequences_repeater/describe_parameters
/unbounded_sequences_repeater/get_parameter_types
/unbounded_sequences_repeater/get_parameters
/unbounded_sequences_repeater/get_type_description
/unbounded_sequences_repeater/list_parameters
/unbounded_sequences_repeater/set_parameters
/unbounded_sequences_repeater/set_parameters_atomically

Signed-off-by: Jorge J. Perez <[email protected]>
@Blast545
Copy link
Contributor

Blast545 commented Oct 7, 2025

#1086 Was missing in the backport, probably this should do the trick. It works locally, although it's failing with a different error of the rmw_zenoh router not being available. Will run some tests before asking for reviews here.

Currently this PR backport 1062, 1086 and 1098

Signed-off-by: Jorge J. Perez <[email protected]>
@Blast545
Copy link
Contributor

Blast545 commented Oct 8, 2025

Kpr job seems to be missing extra configurations for Zenoh, showing various messages with:

Unable to connect to a Zenoh router. Have you started a router with ros2 run rmw_zenoh_cpp rmw_zenohd`

And all the rmw_zenoh tests failing. The failures that I was tackling were solved, so I will run CI for this PR on ci.ros2.org and ask for reviews.

@Blast545
Copy link
Contributor

Blast545 commented Oct 8, 2025

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

@Blast545
Copy link
Contributor

Blast545 commented Oct 9, 2025

I think this will need at least backporting ros2/ament_cmake_ros#46, I will open a PR there with ament_ros_cmake backports and test CI after those are merged.

@Blast545
Copy link
Contributor

Re-running linux after ament_cmake_ros backport to see if it improves the situation:

Build Status

Signed-off-by: Jorge J. Perez <[email protected]>
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 this pull request may close these issues.

3 participants