← Open Source & Engineering Work
Python AnyIO Structured Concurrency · agronholm/anyio18/18 CI Green · AnyIO Core (PR #1426)

Fix TaskGroup.start() losing child exception during cancellation on asyncio (#1426)

Sole Author: Patrick Ribbsaeter (@patrickswedish) · Immutable Commit SHA: fbab57e9c75751cd489bf36eb20078711bf6c6e1

Asyncio structured-concurrency backend fix ensuring exceptions raised by child coroutines prior to task_status.started() are preserved instead of masked by outer cancellation scopes.

Fix TaskGroup.start() losing child exception during cancellation on asyncio (#1426)

PR #1426

100% CI GREEN · 18/18

fbab57e

Immutable Git SHA

Python

Runtime

18/18 CI Green

CI & Test Matrix

01 · Engineering problem

The failure mode

Nested TaskGroup cancellation edge cases on the asyncio backend could mispropagate cancellation state across shielded or exiting child tasks.

02 · Technical response

What changed

  1. 01Refined asyncio TaskGroup cancellation state tracking in AnyIO to preserve structured concurrency invariants.
  2. 02Added deterministic asyncio backend TaskGroup regression tests.

03 · Verified outcome

Evidence-backed result

  • ✓Passed 100% of AnyIO CI checks across Python versions on commit fbab57e9c75751cd489bf36eb20078711bf6c6e1.

04 · Cryptographic Git record

Immutable source evidence

PythonAnyIOasyncioStructured ConcurrencyTaskGroups

Independent open-source engineering authored solely by Patrick Ribbsaeter (@patrickswedish). Company and project names identify the public repository context only under nominative fair use. No employment, client, vendor, or partnership relationship is implied unless explicitly stated.