diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-09-30 16:07:18 +0100 |
---|---|---|
committer | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-09-30 16:07:18 +0100 |
commit | ee40a29e55eb7986e16bb24bd388fb710e43aea9 (patch) | |
tree | acdc641c351d7b7c1f8da9760e54fec599878aa1 /syncapi/notifier | |
parent | aa8ec1acbf3932b0543033bbf735225dac21676a (diff) |
Fix broken `/sync` due to transaction error
Diffstat (limited to 'syncapi/notifier')
-rw-r--r-- | syncapi/notifier/notifier.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/syncapi/notifier/notifier.go b/syncapi/notifier/notifier.go index a8e5bf9a..db18c6b7 100644 --- a/syncapi/notifier/notifier.go +++ b/syncapi/notifier/notifier.go @@ -19,6 +19,7 @@ import ( "sync" "time" + "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/syncapi/storage" "github.com/matrix-org/dendrite/syncapi/types" "github.com/matrix-org/gomatrixserverlib" @@ -323,7 +324,8 @@ func (n *Notifier) Load(ctx context.Context, db storage.Database) error { if err != nil { return err } - defer snapshot.Rollback() // nolint:errcheck + var succeeded bool + defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err) roomToUsers, err := snapshot.AllJoinedUsersInRooms(ctx) if err != nil { @@ -337,6 +339,7 @@ func (n *Notifier) Load(ctx context.Context, db storage.Database) error { } n.setPeekingDevices(roomToPeekingDevices) + succeeded = true return nil } @@ -349,7 +352,8 @@ func (n *Notifier) LoadRooms(ctx context.Context, db storage.Database, roomIDs [ if err != nil { return err } - defer snapshot.Rollback() // nolint:errcheck + var succeeded bool + defer sqlutil.EndTransactionWithCheck(snapshot, &succeeded, &err) roomToUsers, err := snapshot.AllJoinedUsersInRoom(ctx, roomIDs) if err != nil { @@ -357,6 +361,7 @@ func (n *Notifier) LoadRooms(ctx context.Context, db storage.Database, roomIDs [ } n.setUsersJoinedToRooms(roomToUsers) + succeeded = true return nil } |