AssertionError while using transactions.in_transaction
DaniilChizhevskii opened this issue · 3 comments
DaniilChizhevskii commented
Describe the bug
I use Tortoise ORM with FastAPI contrib and MySQL database. There are some places in my code where I use toirtoise.transactions.in_transaction
and it causes this error sometimes:
AssertionError: (<aiomysql.connection.Connection object at 0x7ec4f3382120>, {<aiomysql.connection.Connection object at 0x7ec4f3d648f0>, <aiomysql.connection.Connection object at 0x7ec4f3d20530>, <aiomysql.connection.Connection object at 0x7ec4f3367b30>, <aiomysql.connection.Connection object at 0x7ec4f3364770>, <aiomysql.connection.Connection object at 0x7ec4f3d22ba0>})
I use multiple gunicorn workers and all of them having this issue simultaneously. Issue repeats several times an hour.
To Reproduce
Create FastAPI application with registered Tortoise:
from fastapi import FastAPI
from tortoise.contrib.fastapi import register_tortoise
app = FastAPI(title=...)
register_tortoise(app, config=..., generate_schemas=False, add_exception_handlers=False)
Add transaction somewhere in your routes:
async with transactions.in_transaction():
...
And MySQL connection:
mysql://root:password@localhost:3306/db
Expected behavior
App works normally, no exceptions got
henadzit commented
Hi @DaniilChizhevskii, could you please tell how do you know that the error happens in in_transaction
? Can you provide a stacktrace?