asyncpg icon indicating copy to clipboard operation
asyncpg copied to clipboard

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

Open iyuhang opened this issue 3 years ago • 5 comments

  • 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

iyuhang avatar Dec 20 '22 13:12 iyuhang

Faced the same issue. Any solutions here?

VyachAp avatar Apr 12 '23 18:04 VyachAp

Same issue

teleportx avatar Feb 28 '24 18:02 teleportx