diff --git a/roomserver/state/state.go b/roomserver/state/state.go index 4ef30380f..d805d81c8 100644 --- a/roomserver/state/state.go +++ b/roomserver/state/state.go @@ -1036,7 +1036,6 @@ func (v *StateResolution) loadStateEvents( eventNIDs = append(eventNIDs, entry.EventNID) } } - sort.Sort(eventNIDs) events, err := v.db.Events(ctx, eventNIDs) if err != nil { return nil, nil, err diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go index abcd3403b..3d165a197 100644 --- a/roomserver/storage/shared/storage.go +++ b/roomserver/storage/shared/storage.go @@ -433,8 +433,9 @@ func (d *Database) Events( } func (d *Database) events( - ctx context.Context, txn *sql.Tx, inputEventNIDs []types.EventNID, + ctx context.Context, txn *sql.Tx, inputEventNIDs types.EventNIDs, ) ([]types.Event, error) { + sort.Sort(inputEventNIDs) events := make(map[types.EventNID]*gomatrixserverlib.Event, len(inputEventNIDs)) eventNIDs := make([]types.EventNID, 0, len(inputEventNIDs)) for _, nid := range inputEventNIDs { @@ -496,7 +497,7 @@ func (d *Database) events( for _, nid := range inputEventNIDs { event, ok := events[nid] if !ok || event == nil { - panic("missing event") + return nil, fmt.Errorf("event %d missing", nid) } results = append(results, types.Event{ EventNID: nid,