mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-25 00:12:08 +08:00
session may be a scoped_session and may not have a transaction
This commit is contained in:
@@ -67,7 +67,10 @@ def check_database_connection(session):
|
||||
Ref: https://docs.sqlalchemy.org/en/14/errors.html#can-t-reconnect-until-invalid-transaction-is-rolled-back
|
||||
"""
|
||||
assert session
|
||||
if not session.get_transaction().is_active or session.connection().invalidated:
|
||||
if isinstance(session, scoped_session):
|
||||
session = session()
|
||||
trans = session.get_transaction()
|
||||
if (trans and not trans.is_active) or session.connection().invalidated:
|
||||
session.rollback()
|
||||
log.error("Database transaction rolled back due to inactive session transaction or invalid connection state.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user