MagicStack / MagicStack/asyncpg

Test failure in test_pool_handles_transaction_exit_in_asyncgen_2 with Python 3.15.0a5, PYTHONASYNCIODEBUG=1

Ouverte
#1,300 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
8.1k
Forks
468
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

$ git clone https://github.com/MagicStack/asyncpg.git
$ cd asyncpg
$ git submodule update --init --recursive
$ uv venv --python 3.15
Using CPython 3.15.0a5 interpreter at: /usr/bin/python3.15
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv pip install -e .[gssauth]
$ uv pip install --group test
$ PYTHONASYNCIODEBUG=1 pytest -v
[…]
________________________________________________________________ TestPool.test_pool_handles_transaction_exit_in_asyncgen_2 _________________________________________________________________
Traceback (most recent call last):
  File "/usr/lib64/python3.15/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib64/python3.15/unittest/case.py", line 667, in run
    self._callTestMethod(testMethod)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib64/python3.15/unittest/case.py", line 613, in _callTestMethod
    result = method()
  File "/home/ben/src/forks/asyncpg/asyncpg/_testbase/__init__.py", line 92, in wrapper
    self.loop.run_until_complete(coro)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib64/python3.15/asyncio/base_events.py", line 719, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
RuntimeError: cannot reuse already awaited coroutine

The above instructions also result in TestConnectionAttributes.test_prefer_standby_picks_master_when_standby_is_down failing due to a timeout, but I’m not seeing that when I build https://src.fedoraproject.org/rpms/python-asyncpg.

The test TestPool.test_pool_handles_transaction_exit_in_asyncgen_2 passes when PYTHONASYNCIODEBUG=1 is not set.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

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.

Piste de recherche

Reproduisez l’échec avec Python 3.15.0a5, PYTHONASYNCIODEBUG=1 et la commande pytest documentée. Commencez par TestPool.test_pool_handles_transaction_exit_in_asyncgen_2 et asyncpg/_testbase/init.py:92, puis comparez l’exécution sans le débogage asyncio et vérifiez le timeout distinct du standby ; le travail est terminé lorsque les échecs de test signalés sont compris et résolus, ou clairement isolés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
postgresql, python
Domaine
databases, testing-qa
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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