Skip to content

Commit e3adf71

Browse files
committed
fix(transaction): rollback broken transactions on commit (#53)
1 parent 28d6546 commit e3adf71

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/ttt/infrastructure/adapters/transaction.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ async def __aexit__(
4545

4646
async def commit(self) -> None:
4747
transaction = not_none(self._session.get_transaction())
48+
49+
if not transaction.is_active:
50+
await transaction.rollback()
51+
return
52+
4853
with reraise_serialization_error():
4954
await transaction.commit()
5055

@@ -78,7 +83,11 @@ async def __aexit__(
7883

7984
async def commit(self) -> None:
8085
transaction = not_none(self._session.get_transaction())
81-
await transaction.commit()
86+
87+
if transaction.is_active:
88+
await transaction.commit()
89+
else:
90+
await transaction.rollback()
8291

8392

8493
@dataclass

0 commit comments

Comments
 (0)