python / python/cpython

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

Ouverte
#137,549 2 commentaires 0 réactions 2 personnes assignées Voir sur GitHub

@gunyu1019 y travaille déjà.

Depuis le 15/8/2025.

stdlib topic-asyncio type-bug
Langage dominant
Python
Étoiles
77.2k
Forks
35.9k
Métriques de merge des PR
Métriques de PR en attente

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.