From 9a1491c5eda42f9a53149225dced7be8cd801dce Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 8 Sep 2020 15:26:50 +0100 Subject: [PATCH] Commit/rollback sync API transactions in writer --- syncapi/storage/shared/syncserver.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/syncapi/storage/shared/syncserver.go b/syncapi/storage/shared/syncserver.go index 6267dd3aa..5736683c8 100644 --- a/syncapi/storage/shared/syncserver.go +++ b/syncapi/storage/shared/syncserver.go @@ -427,7 +427,11 @@ func (d *Database) addPDUDeltaToResponse( return nil, err } succeeded := false - defer sqlutil.EndTransactionWithCheck(txn, &succeeded, &err) + defer func() { + _ = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error { + return sqlutil.EndTransactionWithCheck(txn, &succeeded, &err) + }) + }() stateFilter := gomatrixserverlib.DefaultStateFilter() // TODO: use filter provided in request @@ -620,7 +624,11 @@ func (d *Database) getResponseWithPDUsForCompleteSync( return } succeeded := false - defer sqlutil.EndTransactionWithCheck(txn, &succeeded, &err) + defer func() { + _ = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error { + return sqlutil.EndTransactionWithCheck(txn, &succeeded, &err) + }) + }() // Get the current sync position which we will base the sync response on. toPos, err = d.syncPositionTx(ctx, txn)