Wrap NewMembershipUpdater in a db writer (#1515)
This commit is contained in:
parent
73bc28b11f
commit
d7ea814fa8
|
@ -93,7 +93,7 @@ func trackGoID(query string) {
|
|||
if strings.HasPrefix(q, "SELECT") {
|
||||
return // SELECTs can go on other goroutines
|
||||
}
|
||||
logrus.Warnf("unsafe goid: SQL executed not on an ExclusiveWriter: %s", q)
|
||||
logrus.Warnf("unsafe goid %d: SQL executed not on an ExclusiveWriter: %s", thisGoID, q)
|
||||
}
|
||||
|
||||
// Open opens a database specified by its database driver name and a driver-specific data source name,
|
||||
|
|
|
@ -22,12 +22,21 @@ func NewMembershipUpdater(
|
|||
ctx context.Context, d *Database, txn *sql.Tx, roomID, targetUserID string,
|
||||
targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
|
||||
) (*MembershipUpdater, error) {
|
||||
roomNID, err := d.assignRoomNID(ctx, txn, roomID, roomVersion)
|
||||
var roomNID types.RoomNID
|
||||
var targetUserNID types.EventStateKeyNID
|
||||
var err error
|
||||
err = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error {
|
||||
roomNID, err = d.assignRoomNID(ctx, txn, roomID, roomVersion)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
|
||||
targetUserNID, err := d.assignStateKeyNID(ctx, txn, targetUserID)
|
||||
targetUserNID, err = d.assignStateKeyNID(ctx, txn, targetUserID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue