Description
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
- Run a build in any of the reference jobs
- See test regression fail
Expected behavior
Tests should not fail
Actual behavior
Tests are failing
Additional information
Reference builds:
- Kci__nightly-connext_ubuntu_noble_amd64#10
- Kci__nightly-debug_ubuntu_noble_amd64#11
- Kci__nightly-release_ubuntu_noble_amd64#9
- Rci__nightly-connext_ubuntu_noble_amd64#423
- Rci__nightly-debug_ubuntu_noble_amd64#413
- Rci__nightly-release_ubuntu_noble_amd64#422
- nightly_linux-aarch64_debug#3164
- nightly_linux-aarch64_repeated#3185
- nightly_linux-rhel_debug#2308
- nightly_linux-rhel_repeated#2309
- nightly_linux_debug#3443
- nightly_linux_release#3501
- nightly_linux_repeated#3868
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.