python / python/cpython

`asyncio.Timeout.__aexit__` does not handle `BaseExceptionGroup`

Abierto
#137,549 2 comentarios 0 reacciones 2 asignados Ver en GitHub

@gunyu1019 ya está trabajando en esto.

Desde el 15/8/2025.

stdlib topic-asyncio type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
36k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug report

Bug description:

There may be a good reason for this I am not seeing, but in the asyncio.Timeout.__aexit__ handler, the exception group handling seems too narrow:

https://github.com/python/cpython/blob/9743d069bd53e9d3a8f09df899ec1c906a79da24/Lib/asyncio/timeouts.py#L113-L119

Given exc_val itself can be a BaseException and _insert_timeout_error takes a BaseException as an argument, I fail to see a reason not to check for superclass BaseExceptionGroup instead.

https://github.com/python/cpython/blob/9743d069bd53e9d3a8f09df899ec1c906a79da24/Lib/asyncio/timeouts.py#L133

This no longer impacts me as I implemented what I was aiming for in a better way, but it still looks like a bug. Is it?

CPython versions tested on:

3.13

Operating systems tested on:

Linux

Linked PRs
  • gh-137797

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.