From a2600cd27b6128891796a67e6a96a0fe85807fdb Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Mon, 9 May 2022 12:35:53 +0100 Subject: [PATCH] Don't try to re-fetch the event in the output message --- syncapi/consumers/roomserver.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/syncapi/consumers/roomserver.go b/syncapi/consumers/roomserver.go index 7712c8403..c3832ccbe 100644 --- a/syncapi/consumers/roomserver.go +++ b/syncapi/consumers/roomserver.go @@ -156,12 +156,20 @@ func (s *OutputRoomEventConsumer) onNewRoomEvent( ev := msg.Event addsStateEvents := []*gomatrixserverlib.HeaderedEvent{} - foundEventIDs := map[string]bool{} + missingAddStateEventIDs := make([]string, 0, len(msg.AddsStateEventIDs)) + foundEventIDs := map[string]bool{ + msg.Event.EventID(): true, + } if len(msg.AddsStateEventIDs) > 0 { for _, eventID := range msg.AddsStateEventIDs { - foundEventIDs[eventID] = false + if _, ok := foundEventIDs[eventID]; !ok { + foundEventIDs[eventID] = false + missingAddStateEventIDs = append(missingAddStateEventIDs, eventID) + } } - foundEvents, err := s.db.Events(ctx, msg.AddsStateEventIDs) + } + if len(missingAddStateEventIDs) > 0 { + foundEvents, err := s.db.Events(ctx, missingAddStateEventIDs) if err != nil { return fmt.Errorf("s.db.Events: %w", err) }