Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

asyncpg.exceptions._base.InterfaceError: cannot call Connection.fetch(): connection has been released back to the pool

Ouverte
#988 5 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

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

Piste de recherche

Commencez par les exemples Sanic et tortoise-orm de gestionnaire de requêtes par rapport à la tâche en arrière-plan dans l’issue, puis suivez les chemins de pool.acquire et pool release montrés dans les captures d’écran. Reproduisez si possible l’erreur PoolConnectionProxy libérée et déterminez si la requête en arrière-plan utilise une connexion après sa libération ; le travail est terminé lorsque la cause et soit une correction côté projet, soit un problème d’utilisation confirmé sont documentés.

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

Description

  • asyncpg version: 0.26.0
  • PostgreSQL version: 12.0
  • Do you use a PostgreSQL SaaS? If so, which? Can you reproduce : NO, from pg docker
    the issue with a local PostgreSQL install?
    : YES,
  • Python version: Python 3.9.13
  • Platform: MAC
  • Do you use pgbouncer?: No
  • Did you install asyncpg with pip?: From tortoise-orm
  • If you built asyncpg locally, which version of Cython did you use?: No
  • Can the issue be reproduced under both asyncio and
    uvloop?
    : YES

I am using Sanic + tortoise-orm,

the test code as below:

image

when runs a query during the Request handler, it runs successfully

while runs in a background task, it report this error:

asyncpg.exceptions._base.InterfaceError: cannot call Connection.fetch(): connection has been released back to the pool

I found when the first time query, through the pool.acquire, got the right <PoolConnectionProxy <asyncpg.connection.Connection object at 0x7fd42102f9e0> 0x7fd3d018e550>

but when go to the background task query , the pool.acquire, got an "released" <PoolConnectionProxy [released] 0x7fd3d018e550>

I am confused how can I got an released PoolConnectionProxy from the same code

[query in the get Request method]
query in get

[query in the background task]
query in task

[the pool connection acquire method]
acquire

[the pool connection release method]
release

Langage dominant
Python
Étoiles
8.1k
Forks
469
Merge moyen
3 j 21 h
PR mergées (30 j)
15

Préparer son environnement

Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

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.

Autres issues de MagicStack/asyncpg

Toutes les issues de MagicStack/asyncpg

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

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