Skip to content

🧑‍🌾 test_coroutine_exception_after_await failed in nightly linux aarch64 by an assertion that didn't raised #1665

Description

@miguelgonrod

Generated by Generative AI

No response

Operating System:

Ubuntu resolute

ROS version or commit hash:

Rolling

RMW implementation (if applicable):

No response

RMW Configuration (if applicable):

No response

Client library (if applicable):

No response

'ros2 doctor --report' output

Steps to reproduce issue

  1. Go to any of the jobs specified below
  2. Build a job
  3. See test failing

Expected behavior

To build without test regressions

Actual behavior

Building with test regressions

Additional information

Reference Builds

Failing test

  • rclpy.rclpy.test.test_executor.TestExecutor.test_coroutine_exception_after_await

Log output

self = <test.test_executor.TestExecutor testMethod=test_coroutine_exception_after_await>

    def test_coroutine_exception_after_await(self) -> None:
        """Exception in a coroutine after awaiting a future must propagate."""
        self.assertIsNotNone(self.node.handle)
        # EventsExecutor excluded - segfaults on exception propagation (#1641)
        for cls in [SingleThreadedExecutor, MultiThreadedExecutor]:
            with self.subTest(cls=cls):
                executor = cls(context=self.context)
                executor.add_node(self.node)
    
                first_fut = executor.create_future()
                second_fut = executor.create_future()
    
                async def coro_that_raises() -> None:
                    first_fut.set_result(None)
                    await second_fut
                    raise RuntimeError('Expected error after await')
    
                task = executor.create_task(coro_that_raises)
    
                executor.spin_until_future_complete(first_fut, timeout_sec=5)
                self.assertFalse(task.done())
                # Resolve the inner future — triggers resume
                second_fut.set_result(None)
    
>               with self.assertRaises(RuntimeError) as cm:
E               AssertionError: RuntimeError not raised

../../src/ros2/rclpy/rclpy/test/test_executor.py:513: AssertionError

Flakyness 15 days

job_name last_fail first_fail build_count failure_count failure_percentage
nightly_linux-rhel_repeated 2026-05-15 2026-05-01 13 10 76.92
nightly_linux-rhel_debug 2026-05-15 2026-05-01 13 12 92.31
nightly_linux-aarch64_repeated 2026-05-15 2026-04-30 13 13 100.0
nightly_linux-aarch64_debug 2026-05-15 2026-05-03 13 8 61.54
nightly_linux_repeated 2026-05-12 2026-04-30 13 5 38.46
Rci__nightly-fastrtps-dynamic_ubuntu_resolute_amd64 2026-05-12 2026-05-12 3 1 33.33
nightly_linux-aarch64_release 2026-05-08 2026-05-08 13 1 7.69
nightly_linux_release 2026-05-04 2026-05-04 13 1 7.69
nightly_linux_debug 2026-05-03 2026-05-03 13 1 7.69
nightly_linux-rhel_release 2026-05-01 2026-05-01 14 1 7.14

It is very flaky in some jobs, and I'm not sure when this began to happen.

CC: @Crola1702

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions