Skip to content

Async: an exception in the lock holder's macrostep leaves other awaiting send() callers pending #686

Closed

Description

@fgmacedo

Regression on main after v3.2.1, found while fixing #678 (PR #685).

On the async engine with catch_errors_as_events=False (the StateMachine default), when a callback raises during the macrostep run by the coroutine that holds the processing lock, the exception propagates to that caller, but futures of other coroutines awaiting send() of events still queued are never resolved, so those callers hang. On v3.2.1 they got an answer.

Expected: when the processing loop exits on an exception, every other awaiting caller gets a definite outcome (the v3.2.1 contract; confirm it by running the same scenario on a v3.2.1 checkout), with timeout-guarded regression tests on both engines.

Activity

  1. added this to the 3.2.2 milestone on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions