diff --git a/roomserver/query/query.go b/roomserver/query/query.go index 32e37bfe6..7fe9dc980 100644 --- a/roomserver/query/query.go +++ b/roomserver/query/query.go @@ -598,10 +598,14 @@ func (r *RoomserverQueryAPI) isServerCurrentlyInRoom(ctx context.Context, server return auth.IsAnyUserOnServerWithMembership(serverName, gmslEvents, gomatrixserverlib.Join), nil } +// TODO: Remove this when we have tests to assert correctness of this function +// nolint:gocyclo func (r *RoomserverQueryAPI) scanEventTree( ctx context.Context, front []string, visited map[string]bool, limit int, serverName gomatrixserverlib.ServerName, -) (resultNIDs []types.EventNID, err error) { +) ([]types.EventNID, error) { + var resultNIDs []types.EventNID + var err error var allowed bool var events []types.Event var next []string @@ -633,7 +637,7 @@ BFSLoop: // Retrieve the events to process from the database. events, err = r.DB.EventsFromIDs(ctx, front) if err != nil { - return + return resultNIDs, err } if !checkedServerInRoom && len(events) > 0 { @@ -668,7 +672,7 @@ BFSLoop: util.GetLogger(ctx).WithField("server", serverName).WithField("event_id", pre).WithError(err).Error( "Error checking if allowed to see event", ) - return + return resultNIDs, err } // If the event hasn't been seen before and the HS @@ -686,7 +690,7 @@ BFSLoop: front = next } - return + return resultNIDs, err } // QueryStateAndAuthChain implements api.RoomserverQueryAPI diff --git a/syncapi/routing/messages.go b/syncapi/routing/messages.go index 1bf9ad339..5f2e4f171 100644 --- a/syncapi/routing/messages.go +++ b/syncapi/routing/messages.go @@ -428,9 +428,9 @@ func (r *messagesReq) serverToBackfillFrom(fromEventIDs []string) (gomatrixserve // The rationale here is that the last event was unlikely to be sent by us, so poke the server who sent it. // We shouldn't be doing this really, but as a heuristic it should work pretty well for now. for _, e := range events { - _, srv, err := gomatrixserverlib.SplitID('@', e.Sender()) - if err != nil { - util.GetLogger(r.ctx).WithError(err).Warn("Failed to extract domain from event sender") + _, srv, srverr := gomatrixserverlib.SplitID('@', e.Sender()) + if srverr != nil { + util.GetLogger(r.ctx).WithError(srverr).Warn("Failed to extract domain from event sender") continue } if srv != r.cfg.Matrix.ServerName {