Skip to content

πŸ§‘β€πŸŒΎ rmw_connextdds support message making ROS2 CLI tests failΒ #1054

Open
@Crola1702

Description

@Crola1702

Generated by Generative AI

Not completely generated by AI, but I used Claude Sonet 4.0 to get extra insights

Operating System:

Ubuntu noble

ROS version or commit hash:

Rolling, Kilted

RMW implementation (if applicable):

rmw_connextdds

RMW Configuration (if applicable):

No response

Client library (if applicable):

No response

'ros2 doctor --report' output

Steps to reproduce issue

  1. Run a build in any of the reference jobs
  2. See test regression fail

Expected behavior

Tests should not fail

Actual behavior

Tests are failing

Additional information

Reference builds:

Multiple ROS2 CLI tests are failing when using RTI Connext DDS middleware (rmw_connextdds) because RTI is printing an unwanted support message at the beginning of command output:

Please contact [email protected] with any questions or comments.

It seems this extra line causes launch_testing.tools.expect_output() to fail when using strict=True mode, as the actual output no longer matches the expected output exactly. The issue affects multiple ROS2 CLI commands including ros2 param, ros2 action, and ros2 service.

Affected Commands

  • ros2 param list
  • ros2 param dump
  • ros2 param load
  • ros2 action send_goal
  • ros2 service list
  • ros2 service echo
Log Output

ros2 param list Test Failure

FAIL: test_verb_list.TestVerbList.test_verb_list[rmw_connextdds]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/ws/install_isolated/launch_testing/lib/python3.12/site-packages/launch_testing/markers.py", line 61, in _wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/ws/src/ros2/ros2cli/ros2param/test/test_verb_list.py", line 176, in test_verb_list
    assert launch_testing.tools.expect_output(
AssertionError: assert False
 +  where False = <function expect_output at 0x7db597a80860>(expected_lines=['  bool_array_param', '  bool_param', '  double_array_param', '  double_param', '  foo.bar.str_param', '  foo.str_param', ...], text='Please contact [email protected] with any questions or comments.\n  bool_array_param\n  bool_param\n  double_array_para...am\n  int_array_param\n  int_param\n  start_type_description_service\n  str_array_param\n  str_param\n  use_sim_time\n', strict=True)

ros2 param dump Test Failure

FAIL: test_verb_dump.TestVerbDump.test_verb_dump[rmw_connextdds]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/ws/src/ros2/ros2cli/ros2param/test/test_verb_dump.py", line 207, in test_verb_dump
    assert launch_testing.tools.expect_output(
AssertionError: assert False
 +  where False = <function expect_output at 0x7db597a80860>(expected_text=('/foo/test_node:\n  ros__parameters:\n    bool_array_param:\n    - false\n    - false\n    - true\n    bool_param: tru...ce: true\n    str_array_param:\n    - foo\n    - bar\n    - baz\n    str_param: Hello World\n    use_sim_time: false\n' + '\n'), text='Please contact [email protected] with any questions or comments.\n/foo/test_node:\n  ros__parameters:\n    bool_array_p...: true\n    str_array_param:\n    - foo\n    - bar\n    - baz\n    str_param: Hello World\n    use_sim_time: false\n\n', strict=True)

ros2 param load Test Failure with YAML Parsing Error

FAIL: test_verb_load.TestVerbLoad.test_verb_load_wildcard[rmw_connextdds]
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/ws/src/ros2/ros2cli/ros2param/test/test_verb_load.py", line 350, in test_verb_load_wildcard
    loaded_params = yaml.safe_load(param_dump_command.output)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/usr/lib/python3/dist-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
            ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/usr/lib/python3/dist-packages/yaml/scanner.py", line 223, in fetch_more_tokens
    return self.fetch_value()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yaml/scanner.py", line 577, in fetch_value
    raise ScannerError(None, None,
yaml.scanner.ScannerError: mapping values are not allowed here
  in "<unicode string>", line 2, column 15:
    /foo/test_node:
                  ^

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/ws/src/ros2/ros2cli/ros2param/test/test_verb_load.py", line 355, in test_verb_load_wildcard
    self.fail(f'Failed to parse YAML output: {e}')
AssertionError: Failed to parse YAML output: mapping values are not allowed here
  in "<unicode string>", line 2, column 15:
    /foo/test_node:
                  ^

ros2 action send_goal Test Failure

FAIL: test_cli.TestROS2ActionCLI.test_send_fibonacci_goal[rmw_connextdds]
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/ws/src/ros2/ros2cli/ros2action/test/test_cli.py", line 271, in test_send_fibonacci_goal
    assert launch_testing.tools.expect_output(
AssertionError: assert False
 +  where False = <function expect_output at 0x7cfd42164360>(expected_lines=['Waiting for an action server to become available...', 'Sending goal:', '     order: 5', '', re.compile('Goal accepted with ID: [a-f0-9]+'), '', ...], text='Please contact [email protected] with any questions or comments.\nWaiting for an action server to become available...\n...48058c37bcef0c829ebb\n\nResult:\n    sequence:\n- 0\n- 1\n- 1\n- 2\n- 3\n- 5\n\nGoal finished with status: SUCCEEDED\n', strict=True)

ros2 service echo Test Failure

FAIL: test_echo.TestROS2ServiceEcho.test_echo_no_arr[rmw_connextdds]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/ws/src/ros2/ros2cli/ros2service/test/test_echo.py", line 160, in test_echo_no_arr
    assert service_command.wait_for_output(
AssertionError: assert <BoolWithText(False): "Please contact [email protected] with any questions or comments.\nNo publishers on topic '/test_i...sicTypes_Request[1], length: 0>'\nresponse: '<sequence type: test_msgs/srv/BasicTypes_Response[1], length: 1>'\n---\n">

The issue also affects some tests with other middleware implementations (rmw_fastrtps_cpp, rmw_zenoh_cpp), suggesting this might be a broader configuration or environment issue.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions