aboutsummaryrefslogtreecommitdiff
path: root/syncapi/notifier
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2022-09-30 16:07:18 +0100
committerNeil Alexander <neilalexander@users.noreply.github.com>2022-09-30 16:07:18 +0100
commitee40a29e55eb7986e16bb24bd388fb710e43aea9 (patch)
treeacdc641c351d7b7c1f8da9760e54fec599878aa1 /syncapi/notifier
parentaa8ec1acbf3932b0543033bbf735225dac21676a (diff)
Fix broken `/sync` due to transaction error
Diffstat (limited to 'syncapi/notifier')
-rw-r--r--syncapi/notifier/notifier.go9
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
}