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

test_load_composable_nodes.py flaky on Windows #312

Closed
Blast545 opened this issue Apr 19, 2022 · 1 comment · Fixed by #315
Closed

test_load_composable_nodes.py flaky on Windows #312

Blast545 opened this issue Apr 19, 2022 · 1 comment · Fixed by #315
Assignees
Labels
bug Something isn't working

Comments

@Blast545
Copy link
Contributor

Bug report

Required Info:

  • Operating System:
    • Windows
  • Installation type:
    • Source, buildfar
  • Version or commit hash:
    • main
  • DDS implementation:
    • N/A
  • Client library (if applicable):
    • rclpy

Steps to reproduce issue

Run a Windows Buildfarm job. nightly_win_rep shows the problem almost reliably, it has happened about 3 times each 14 jobs in the nightly_win_deb and nightly_win_rel jobs.

Expected behavior

All tests pass.

Actual behavior

This test fails:
https://ci.ros2.org/view/nightly/job/nightly_win_deb/2332/testReport/junit/test_launch_ros.test.test_launch_ros.actions/test_load_composable_nodes/test_load_node_with_param_file/

Additional information

The first time this test failed was about three months ago.
https://ci.ros2.org/view/nightly/job/nightly_win_rep/2505/#showFailuresLink

This is the test failing:
https://github.com/ros2/launch_ros/blob/master/test_launch_ros/test/test_launch_ros/actions/test_load_composable_nodes.py#L353

Is there a ROS2 guarantee that these nodes will be queried in a specified order here?

request = mock_component_container.requests[-2]

@Blast545 Blast545 added the bug Something isn't working label Apr 19, 2022
@Blast545 Blast545 added this to To do in Humble Hawksbill via automation Apr 19, 2022
@sloretz sloretz self-assigned this Apr 25, 2022
@sloretz sloretz moved this from To do to In progress in Humble Hawksbill Apr 25, 2022
@sloretz
Copy link
Contributor

sloretz commented Apr 25, 2022

Is there a ROS2 guarantee that these nodes will be queried in a specified order here?

It looks like launch called the load_node service for the second node before the first node, despite the action for the first node coming first. I'm checking the code to see if that's expected or not.

[DEBUG] [launch_ros.actions.load_composable_nodes]: Calling the '/mock_component_container/_container/load_node' service with request 'composition_interfaces.srv.LoadNode_Request(package_name='foo_package', plugin_name='bar_plugin', node_name='node_2', node_namespace='/ns_2', log_level=0, remap_rules=[], parameters=[rcl_interfaces.msg.Parameter(name='param_2', value=rcl_interfaces.msg.ParameterValue(type=2, bool_value=False, integer_value=22, double_value=0.0, string_value='', byte_array_value=[], bool_array_value=[], integer_array_value=[], double_array_value=[], string_array_value=[])), rcl_interfaces.msg.Parameter(name='param_3', value=rcl_interfaces.msg.ParameterValue(type=2, bool_value=False, integer_value=3, double_value=0.0, string_value='', byte_array_value=[], bool_array_value=[], integer_array_value=[], double_array_value=[], string_array_value=[]))], extra_arguments=[])'
[DEBUG] [launch_ros.actions.load_composable_nodes]: Calling the '/mock_component_container/_container/load_node' service with request 'composition_interfaces.srv.LoadNode_Request(package_name='foo_package', plugin_name='bar_plugin', node_name='node_1', node_namespace='/ns_1', log_level=0, remap_rules=[], parameters=[rcl_interfaces.msg.Parameter(name='param_2', value=rcl_interfaces.msg.ParameterValue(type=2, bool_value=False, integer_value=2, double_value=0.0, string_value='', byte_array_value=[], bool_array_value=[], integer_array_value=[], double_array_value=[], string_array_value=[])), rcl_interfaces.msg.Parameter(name='param_3', value=rcl_interfaces.msg.ParameterValue(type=2, bool_value=False, integer_value=33, double_value=0.0, string_value='', byte_array_value=[], bool_array_value=[], integer_array_value=[], double_array_value=[], string_array_value=[])), rcl_interfaces.msg.Parameter(name='param_1', value=rcl_interfaces.msg.ParameterValue(type=2, bool_value=False, integer_value=1, double_value=0.0, string_value='', byte_array_value=[], bool_array_value=[], integer_array_value=[], double_array_value=[], string_array_value=[]))], extra_arguments=[])'
[DEBUG] [launch_ros.actions.load_composable_nodes]: Received response 'composition_interfaces.srv.LoadNode_Response(success=True, error_message='', full_node_name='/ns_2/node_2', unique_id=6)'
[DEBUG] [launch_ros.actions.load_composable_nodes]: Received response 'composition_interfaces.srv.LoadNode_Response(success=True, error_message='', full_node_name='/ns_1/node_1', unique_id=7)'

Log statements look like they come from

and

self.__logger.debug("Received response '{}'".format(response))

Humble Hawksbill automation moved this from In progress to Done Apr 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

2 participants