From 1b14f872df70d6cae0fa24f893f12b7a1d5467e0 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 13 Oct 2020 11:21:59 +0100 Subject: [PATCH] Don't recurse processEvents --- federationapi/routing/send.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/federationapi/routing/send.go b/federationapi/routing/send.go index 84b7d486c..60cdae02c 100644 --- a/federationapi/routing/send.go +++ b/federationapi/routing/send.go @@ -380,7 +380,6 @@ func (t *txnReq) processEvent(ctx context.Context, e gomatrixserverlib.Event) er if len(stateResp.MissingAuthEventIDs) > 0 { logger.Infof("Event refers to %d unknown auth_events", len(stateResp.MissingAuthEventIDs)) - getServers() if err := t.retrieveMissingAuthEvents(ctx, e, &stateResp); err != nil { return fmt.Errorf("t.retrieveMissingAuthEvents: %w", err) @@ -436,8 +435,16 @@ withNextEvent: logger.WithError(err).Warnf("Failed to unmarshal auth event %q", missingAuthEventID) continue withNextServer } - if err = t.processEvent(ctx, ev); err != nil { - return fmt.Errorf("recursive t.processEvent: %w", err) + if err = api.SendEvents( + context.Background(), + t.rsAPI, + []gomatrixserverlib.HeaderedEvent{ + ev.Headered(stateResp.RoomVersion), + }, + api.DoNotSendToOtherServers, + nil, + ); err != nil { + return fmt.Errorf("api.SendEvents: %w", err) } delete(missingAuthEvents, missingAuthEventID) continue withNextEvent