Assertion test regressions with gcc15 on Resolute
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 45
- Forks
- 57
- Avg merge
- 9h 19m
- Merged PRs (30d)
- 2
Description
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'].
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)
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.
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]
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the referenced ci_linux build 27830 with gcc15 and compare it with build 27840, which uses the reported CMake flag. Inspect the test_communication publisher/subscriber tests and the listed KeyedLong, KeyedString, rclpy, and rclcpp regressions. Done means the affected tests pass with the gcc15 default configuration and the cause is addressed rather than merely suppressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100