Skip to content

Assertion test regressions with gcc15 on Resolute #584

@claraberendsen

Description

@claraberendsen

Description

While testing on Resolute with the default version for gcc15, a number of test regressions appeared with error:

42: [test_publisher-2] 1772127305.884852 [5] dq.builtin: type [INVALID 0000000000000000000000000000]: ddsi_xt_type_init_impl with invalid type object
42: [ERROR] [test_publisher-2]: process has died [pid 327357, exit code -11, cmd '/home/jenkins-agent/workspace/ci_linux/ws/build/test_communication/test_publisher_cpp Arrays /test_time_17_35_05'].
Details
  Starting test run test_communication.test_publisher_subscriber__rclcpp__rmw_cyclonedds_cpp__rmw_fastrtps_cpp_.launch_tests[Arrays]
42: [INFO] [launch]: All log files can be found below /home/rosbuild/.ros/log/2026-02-26-17-35-05-355536-1d530c9d0c60-327350
42: [INFO] [launch]: Default logging verbosity is set to INFO
42: [INFO] [daemon-stop-1]: process started with pid [327354]
42: [INFO] [daemon-stop-1]: process has finished cleanly [pid 327354]
42: test_subscriber_terminates_in_a_finite_amount_of_time[Arrays] (test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[Arrays])
42: Test that the subscriber terminates after a finite amount of time. ... [INFO] [test_publisher-2]: process started with pid [327357]
42: [INFO] [test_subscriber-3]: process started with pid [327358]
42: [test_publisher-2] 1772127305.884852 [5] dq.builtin: type [INVALID 0000000000000000000000000000]: ddsi_xt_type_init_impl with invalid type object
42: [ERROR] [test_publisher-2]: process has died [pid 327357, exit code -11, cmd '/home/jenkins-agent/workspace/ci_linux/ws/build/test_communication/test_publisher_cpp Arrays /test_time_17_35_05'].
42: FAIL
42: 
42: ======================================================================
42: FAIL: test_subscriber_terminates_in_a_finite_amount_of_time[Arrays] (test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[Arrays])
42: Test that the subscriber terminates after a finite amount of time.
42: ----------------------------------------------------------------------
42: Traceback (most recent call last):
42:   File "/home/jenkins-agent/workspace/ci_linux/ws/build/test_communication/test_publisher_subscriber__rclcpp__rmw_cyclonedds_cpp__rmw_fastrtps_cpp_.py", line 75, in test_subscriber_terminates_in_a_finite_amount_of_time
42:     proc_info.assertWaitForShutdown(process=subscriber_process, timeout=10)
42:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42:   File "/home/jenkins-agent/workspace/ci_linux/ws/install/launch_testing/lib/python3.13/site-packages/launch_testing/proc_info_handler.py", line 141, in assertWaitForShutdown
42:     assert success, "Timed out waiting for process '{}' to finish".format(process)
42:            ^^^^^^^
42: AssertionError: Timed out waiting for process '<launch.actions.execute_process.ExecuteProcess object at 0x7a2c600c7c50>' to finish
42: 
42: ----------------------------------------------------------------------
42: Ran 1 test in 10.002s
42: 
42: FAILED (failures=1)
42: [INFO] [test_subscriber-3]: sending signal 'SIGINT' to process[test_subscriber-3]
42: [test_subscriber-3] [INFO] [1772127315.850621109] [rclcpp]: signal_handler(signum=2)
42: [INFO] [test_subscriber-3]: process has finished cleanly [pid 327358]
42: test_processes_finished_gracefully[Arrays] (test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[Arrays])
42: Test that both executables finished gracefully. ... FAIL
42: 
42: ======================================================================
42: FAIL: test_processes_finished_gracefully[Arrays] (test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[Arrays])
42: Test that both executables finished gracefully.
42: ----------------------------------------------------------------------
42: Traceback (most recent call last):
42:   File "/home/jenkins-agent/workspace/ci_linux/ws/build/test_communication/test_publisher_subscriber__rclcpp__rmw_cyclonedds_cpp__rmw_fastrtps_cpp_.py", line 88, in test_processes_finished_gracefully
42:     launch_testing.asserts.assertExitCodes(
42:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
42:         proc_info,
42:         ^^^^^^^^^^
42:         process='test_publisher'
42:         ^^^^^^^^^^^^^^^^^^^^^^^^
42:     )
42:     ^
42:   File "/home/jenkins-agent/workspace/ci_linux/ws/install/launch_testing/lib/python3.13/site-packages/launch_testing/asserts/assert_exit_codes.py", line 62, in assertExitCodes
42:     assert info.returncode in allowable_exit_codes, 'Proc {} exited with code {}'.format(
42:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42: AssertionError: Proc test_publisher-2 exited with code -11
42: 
42: ----------------------------------------------------------------------
42: Ran 1 test in 0.001s
42: 
42: FAILED (failures=1)

Reference build: Build Status

This probably comes from changes on gcc15: https://gcc.gnu.org/gcc-15/changes.html

Debug assertions are now enabled by default for unoptimized builds. Use -D_GLIBCXX_NO_ASSERTIONS to override this.

Building with this CMAKE flag shows that the issues are resolved/ignored.
Build Status

Regressions

projectroot.test_publisher_subscriber_cpp__rmw_fastrtps_cpp__KeyedLong
projectroot.test_publisher_subscriber_cpp__rmw_fastrtps_cpp__KeyedString
projectroot.test_publisher_subscriber__rclpy__rmw_fastrtps_cpp
projectroot.test_publisher_subscriber__rclpy__rclcpp__rmw_fastrtps_cpp
projectroot.test_publisher_subscriber__rclcpp__rclpy__rmw_fastrtps_cpp
projectroot.test_publisher_subscriber__rclcpp__rmw_fastrtps_cpp
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedLong]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedLong]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedString]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedString]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedLong]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedLong]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedString]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedString]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedLong]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedLong]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedString]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedString]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedLong]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedLong]
test_communication.TestPublisherSubscriber.test_subscriber_terminates_in_a_finite_amount_of_time[KeyedString]
test_communication.TestPublisherSubscriberAfterShutdown.test_processes_finished_gracefully[KeyedString]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions