Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#988 5 comentários 3 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
20/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
postgresql, python
Domínio
backend, databases

Direção de pesquisa

Comece com os exemplos de Sanic e tortoise-orm de handler de requisição versus tarefa em segundo plano na issue e, em seguida, rastreie os caminhos de pool.acquire e pool release mostrados nas capturas de tela. Reproduza o erro de PoolConnectionProxy liberado, se possível, e determine se a consulta em segundo plano usa uma conexão após a liberação; considera-se concluído quando a causa e uma correção no projeto ou um problema de uso confirmado estiverem documentados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

  • 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

Linguagem predominante
Python
Estrelas
8.1k
Forks
469
Merge médio
4d 1h
PRs com merge (30d)
14

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de MagicStack/asyncpg

Todas as issues de MagicStack/asyncpg

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.