fix lots of places where we didn't rollback txns upon go errs

This commit is contained in:
Matthew Hodgson 2020-09-09 17:03:31 +01:00
parent faa070bbc2
commit e3ac0e6616
4 changed files with 8 additions and 8 deletions

View file

@ -138,7 +138,7 @@ func (d *Database) StoreJSON(
var err error var err error
_ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error { _ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
nid, err = d.FederationSenderQueueJSON.InsertQueueJSON(ctx, txn, js) nid, err = d.FederationSenderQueueJSON.InsertQueueJSON(ctx, txn, js)
return nil return err
}) })
if err != nil { if err != nil {
return nil, fmt.Errorf("d.insertQueueJSON: %w", err) return nil, fmt.Errorf("d.insertQueueJSON: %w", err)

View file

@ -41,7 +41,7 @@ func (d *Database) ExistingOneTimeKeys(ctx context.Context, userID, deviceID str
func (d *Database) StoreOneTimeKeys(ctx context.Context, keys api.OneTimeKeys) (counts *api.OneTimeKeysCount, err error) { func (d *Database) StoreOneTimeKeys(ctx context.Context, keys api.OneTimeKeys) (counts *api.OneTimeKeysCount, err error) {
_ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error { _ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
counts, err = d.OneTimeKeysTable.InsertOneTimeKeys(ctx, txn, keys) counts, err = d.OneTimeKeysTable.InsertOneTimeKeys(ctx, txn, keys)
return nil return err
}) })
return return
} }

View file

@ -359,7 +359,7 @@ func (d *Database) MembershipUpdater(
var updater *MembershipUpdater var updater *MembershipUpdater
_ = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error { _ = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error {
updater, err = NewMembershipUpdater(ctx, d, txn, roomID, targetUserID, targetLocal, roomVersion) updater, err = NewMembershipUpdater(ctx, d, txn, roomID, targetUserID, targetLocal, roomVersion)
return nil return err
}) })
return updater, err return updater, err
} }
@ -374,7 +374,7 @@ func (d *Database) GetLatestEventsForUpdate(
var updater *LatestEventsUpdater var updater *LatestEventsUpdater
_ = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error { _ = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error {
updater, err = NewLatestEventsUpdater(ctx, d, txn, roomInfo) updater, err = NewLatestEventsUpdater(ctx, d, txn, roomInfo)
return nil return err
}) })
return updater, err return updater, err
} }

View file

@ -146,7 +146,7 @@ func (d *Database) AddInviteEvent(
) (sp types.StreamPosition, err error) { ) (sp types.StreamPosition, err error) {
_ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error { _ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
sp, err = d.Invites.InsertInviteEvent(ctx, txn, inviteEvent) sp, err = d.Invites.InsertInviteEvent(ctx, txn, inviteEvent)
return nil return err
}) })
return return
} }
@ -158,7 +158,7 @@ func (d *Database) RetireInviteEvent(
) (sp types.StreamPosition, err error) { ) (sp types.StreamPosition, err error) {
_ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error { _ = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
sp, err = d.Invites.DeleteInviteEvent(ctx, txn, inviteEventID) sp, err = d.Invites.DeleteInviteEvent(ctx, txn, inviteEventID)
return nil return err
}) })
return return
} }
@ -171,7 +171,7 @@ func (d *Database) AddPeek(
) (sp types.StreamPosition, err error) { ) (sp types.StreamPosition, err error) {
_ = d.Writer.Do(nil, nil, func(_ *sql.Tx) error { _ = d.Writer.Do(nil, nil, func(_ *sql.Tx) error {
sp, err = d.Peeks.InsertPeek(ctx, nil, roomID, userID, deviceID) sp, err = d.Peeks.InsertPeek(ctx, nil, roomID, userID, deviceID)
return nil return err
}) })
return return
} }
@ -184,7 +184,7 @@ func (d *Database) DeletePeeks(
) (sp types.StreamPosition, err error) { ) (sp types.StreamPosition, err error) {
_ = d.Writer.Do(nil, nil, func(_ *sql.Tx) error { _ = d.Writer.Do(nil, nil, func(_ *sql.Tx) error {
sp, err = d.Peeks.DeletePeeks(ctx, nil, roomID, userID) sp, err = d.Peeks.DeletePeeks(ctx, nil, roomID, userID)
return nil return err
}) })
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
err = nil err = nil