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.
isCreateEvent := event.Type() == gomatrixserverlib.MRoomCreate && event.StateKeyEquals("")
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

View file

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

View file

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