-
-
Notifications
You must be signed in to change notification settings - Fork 57
Open
Description
halo abang-abang, saya mendapatkan error dengan koneksi database lebih dari satu, berikut error nya
ERROR SESSION: (asyncmy.errors.InternalError) Packet sequence number wrong - got 52 expected 1
(Background on this error at: https://sqlalche.me/e/20/2j85)
INFO: 127.0.0.1:50768 - "GET /openapi.json HTTP/1.1" 200 OK
2025-07-04 09:55:50,844 INFO sqlalchemy.engine.Engine SELECT DATABASE()
2025-07-04 09:55:50,844 INFO sqlalchemy.engine.Engine [raw sql] ()
2025-07-04 09:55:50,845 INFO sqlalchemy.engine.Engine SELECT @@sql_mode
2025-07-04 09:55:50,845 INFO sqlalchemy.engine.Engine [raw sql] ()
2025-07-04 09:55:50,847 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names
2025-07-04 09:55:50,847 INFO sqlalchemy.engine.Engine [raw sql] ()
2025-07-04 09:55:50,849 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2025-07-04 09:55:50,861 INFO sqlalchemy.engine.Engine SELECT get_imp_in.id_kms, get_imp_in.kd_dok, get_imp_in.kd_tps, get_imp_in.nm_angkut, get_imp_in.no_voy_fl
ight, get_imp_in.call_sign, get_imp_in.tg_tiba, get_imp_in.kd_gudang, get_imp_in.ref_num, get_imp_in.no_bl_awb, get_imp_in.tgl_bl_awb, get_imp_in.no_master_bl_a
wb, get_imp_in.tgl_master_bl_awb, get_imp_in.id_consignee, get_imp_in.consignee, get_imp_in.bruto, get_imp_in.no_bc11, get_imp_in.tgl_bc11, get_imp_in.no_pos_bc
11, get_imp_in.cont_asal, get_imp_in.seri_kem, get_imp_in.kd_kem, get_imp_in.jml_kem, get_imp_in.kd_timbun, get_imp_in.kd_dok_inout, get_imp_in.no_dok_inout, ge
t_imp_in.tgl_dok_inout, get_imp_in.wk_inout, get_imp_in.kd_sar_angkut, get_imp_in.no_pol, get_imp_in.pel_muat, get_imp_in.pel_transit, get_imp_in.pel_bongkar, g
et_imp_in.gudang_tujuan, get_imp_in.kode_kantor, get_imp_in.no_daftar_pabean, get_imp_in.tgl_daftar_pabean, get_imp_in.no_segel_bc, get_imp_in.tg_segel_bc, get_
imp_in.no_ijin_tps, get_imp_in.tgl_ijin_tps, get_imp_in.flag_transfer, get_imp_in.date_create, get_imp_in.date_update, get_imp_in.flag_gateout, get_imp_in.respon, get_imp_in.token, get_imp_in.created_at
FROM get_imp_in
2025-07-04 09:55:50,861 INFO sqlalchemy.engine.Engine [generated in 0.00109s] ()
2025-07-04 09:55:50,864 INFO sqlalchemy.engine.Engine ROLLBACK
ERROR SESSION: (asyncmy.errors.InternalError) Packet sequence number wrong - got 52 expected 1
(Background on this error at: https://sqlalche.me/e/20/2j85)
Session close saaaaatttttt.....
INFO: 127.0.0.1:50771 - "POST /tpsonline-application/inventory/12 HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "C:\laragon\bin\python\python-3.10\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "C:\laragon\bin\python\python-3.10\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\fastapi\applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 409, in _sentry_patched_asgi_app
return await middleware(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\asgi.py", line 174, in _run_asgi3
return await self._run_app(scope, receive, send, asgi_version=3)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\asgi.py", line 276, in _run_app
raise exc from None
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\asgi.py", line 271, in _run_app
return await self.app(
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 200, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
raise exc
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 200, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 173, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_utils.py", line 82, in collapse_excgroups
raise exc
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 175, in __call__
response = await self.dispatch_func(request, call_next)
File "C:\Users\wisnu\Documents\Belajar\fastapictos\app\core\logger_middleware.py", line 28, in dispatch
response: Response = await call_next(request)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 153, in call_next
raise app_exc
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\base.py", line 140, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 298, in _sentry_exceptionmiddleware_call
await old_call(self, scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\starlette.py", line 200, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
raise exc
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 714, in __call__
await self.middleware_stack(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 734, in app
await route.handle(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 288, in handle
await self.app(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
raise exc
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\starlette\routing.py", line 73, in app
response = await f(request)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sentry_sdk\integrations\fastapi.py", line 143, in _sentry_app
return await old_app(*args, **kwargs)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\fastapi\routing.py", line 290, in app
async with AsyncExitStack() as async_exit_stack:
File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 714, in __aexit__
raise exc_details[1]
File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 697, in __aexit__
cb_suppress = await cb(*exc_details)
File "C:\laragon\bin\python\python-3.10\lib\contextlib.py", line 217, in __aexit__
await self.gen.athrow(typ, value, traceback)
File "C:\Users\wisnu\Documents\Belajar\fastapictos\app\db\mysql1.py", line 17, in get_db1_session
await session.close()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\ext\asyncio\session.py", line 1031, in close
await greenlet_spawn(self.sync_session.close)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\session.py", line 2521, in close
self._close_impl(invalidate=False)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\session.py", line 2590, in _close_impl
transaction.close(invalidate)
File "<string>", line 2, in close
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\orm\session.py", line 1419, in close
transaction.close()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2586, in close
self._do_close()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2724, in _do_close
self._close_impl()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2710, in _close_impl
self._connection_rollback_impl()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2702, in _connection_rollback_impl
self.connection._rollback_impl()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1127, in _rollback_impl
self._handle_dbapi_exception(e, None, None, None, None)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\base.py", line 1125, in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\engine\default.py", line 703, in do_rollback
dbapi_connection.rollback()
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\dialects\mysql\asyncmy.py", line 221, in rollback
self.await_(self._connection.rollback())
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
File "C:\laragon\bin\python\python-3.10\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
File "asyncmy\\connection.pyx", line 414, in rollback
await self._read_ok_packet()
File "asyncmy\\connection.pyx", line 377, in _read_ok_packet
pkt = await self.read_packet()
File "asyncmy\\connection.pyx", line 629, in read_packet
raise errors.InternalError(
sqlalchemy.exc.InternalError: (asyncmy.errors.InternalError) Packet sequence number wrong - got 52 expected 1
(Background on this error at: https://sqlalche.me/e/20/2j85)
udah di tanya chat gpt jawabannya bolak-balik saja, tidak ada solusi, adakah yg tau permasalahan saya?
mungkin bisa review code saya juga:
route.py
from fastapi import Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from app.db.mysql1 import get_db1_session
from app.utils.logger import logger
from app.core.config import SwaggerTag
from app.core.router_factory import create_router
from app.schemas.tpsonline.get_imp_in_schema import GateImpInShowSchema
from app.services.tpsonline.inventory_service import inventory_by_id
router = create_router(SwaggerTag.TPSONLINEAPP)
@router.post('/inventory/{id_kms}',
summary="Menampilkan data inventory at TPS warehouse ",
response_model=GateImpInShowSchema)
async def get_inventory(id_kms: int, db: AsyncSession = Depends(get_db1_session)):
return await inventory_by_id(db, id_kms)
# if not db_item:
# raise HTTPException(status_code=404, detail="Item not found")
# return db_itemmysql1.py
# ---------------- db/mysql1.py ----------------
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import declarative_base
from app.core.config import env
engine1 = create_async_engine(env.MYSQL1_URL, echo=True, pool_recycle=1800, pool_pre_ping=True)
SessionLocal1 = async_sessionmaker(bind=engine1, class_=AsyncSession, expire_on_commit=False)
Base1 = declarative_base()
async def get_db1_session():
try:
async with SessionLocal1() as session:
try:
yield session
finally:
await session.close()
except Exception as e:
print("ERROR SESSION:", str(e))
raise
finally:
print(f"Session close .....")mysql2.py
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import declarative_base
from app.core.config import env
engine2 = create_async_engine(env.MYSQL2_URL, echo=True, pool_recycle=1800, pool_pre_ping=True)
SessionLocal2 = async_sessionmaker(bind=engine2, class_=AsyncSession, expire_on_commit=False)
Base2 = declarative_base()
async def get_db2_session():
async with SessionLocal2() as session:
yield sessioninventory.py
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import exc
from app.models.tpsonline.get_imp_in import GetImpIn
async def inventory_by_id(db, id_kms:int):
try:
result = await db.execute(select(GetImpIn))
return result.scalars().all()
# result = await db.execute(select(GetImpIn).where(GetImpIn.id_kms == id_kms))
# return result.first()
except exc.DBAPIError as e:
raise print(f"DBAPIError: {e}")Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels