Improve error, fix another case where transaction wasn't used properly

This commit is contained in:
Neil Alexander 2022-02-11 16:42:22 +00:00
parent e2d377e338
commit 1128632eaa
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
3 changed files with 4 additions and 3 deletions

View file

@ -133,7 +133,7 @@ func (r *Inputer) processRoomEvent(
// event. // event.
isCreateEvent := event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("") isCreateEvent := event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("")
if !updater.RoomExists() && !isCreateEvent { if !updater.RoomExists() && !isCreateEvent {
return rollbackTransaction, fmt.Errorf("room does not exist") return rollbackTransaction, fmt.Errorf("room %s does not exist for event %s", event.RoomID(), event.EventID())
} }
var missingAuth, missingPrev bool var missingAuth, missingPrev bool

View file

@ -76,7 +76,8 @@ func prepareEventJSONTable(db *sql.DB) (tables.EventJSON, error) {
func (s *eventJSONStatements) InsertEventJSON( func (s *eventJSONStatements) InsertEventJSON(
ctx context.Context, txn *sql.Tx, eventNID types.EventNID, eventJSON []byte, ctx context.Context, txn *sql.Tx, eventNID types.EventNID, eventJSON []byte,
) error { ) error {
_, err := s.insertEventJSONStmt.ExecContext(ctx, int64(eventNID), eventJSON) stmt := sqlutil.TxStmt(txn, s.insertEventJSONStmt)
_, err := stmt.ExecContext(ctx, int64(eventNID), eventJSON)
return err return err
} }

View file

@ -553,7 +553,7 @@ func (d *Database) storeEvent(
err error err error
) )
var txn *sql.Tx var txn *sql.Tx
if updater != nil { if updater == nil || updater.txn != nil {
txn = updater.txn txn = updater.txn
} }
err = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error { err = d.Writer.Do(d.DB, txn, func(txn *sql.Tx) error {