Fix broken /sync due to transaction error

This commit is contained in:
Neil Alexander 2022-09-30 16:07:18 +01:00
parent aa8ec1acbf
commit ee40a29e55
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
15 changed files with 45 additions and 8 deletions

View file

@ -75,6 +75,7 @@ func (p *PDUStreamProvider) CompleteSync(
joinedRoomIDs, err := snapshot.RoomIDsWithMembership(ctx, req.Device.UserID, gomatrixserverlib.Join)
if err != nil {
req.Log.WithError(err).Error("p.DB.RoomIDsWithMembership failed")
_ = snapshot.Rollback()
return from
}
@ -101,6 +102,7 @@ func (p *PDUStreamProvider) CompleteSync(
)
if jerr != nil {
req.Log.WithError(jerr).Error("p.getJoinResponseForCompleteSync failed")
_ = snapshot.Rollback()
continue // return from
}
req.Response.Rooms.Join[roomID] = *jr
@ -111,6 +113,7 @@ func (p *PDUStreamProvider) CompleteSync(
peeks, err := snapshot.PeeksInRange(ctx, req.Device.UserID, req.Device.ID, r)
if err != nil {
req.Log.WithError(err).Error("p.DB.PeeksInRange failed")
_ = snapshot.Rollback()
return from
}
for _, peek := range peeks {
@ -121,6 +124,7 @@ func (p *PDUStreamProvider) CompleteSync(
)
if err != nil {
req.Log.WithError(err).Error("p.getJoinResponseForCompleteSync failed")
_ = snapshot.Rollback()
continue // return from
}
req.Response.Rooms.Peek[peek.RoomID] = *jr