diff options
Diffstat (limited to 'roomserver/internal/input_latest_events.go')
-rw-r--r-- | roomserver/internal/input_latest_events.go | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/roomserver/internal/input_latest_events.go b/roomserver/internal/input_latest_events.go index 0158c8f7..3be5218d 100644 --- a/roomserver/internal/input_latest_events.go +++ b/roomserver/internal/input_latest_events.go @@ -57,7 +57,7 @@ func (r *RoomserverInternalAPI) updateLatestEvents( ) (err error) { updater, err := r.DB.GetLatestEventsForUpdate(ctx, roomNID) if err != nil { - return + return fmt.Errorf("r.DB.GetLatestEventsForUpdate: %w", err) } succeeded := false defer func() { @@ -79,7 +79,7 @@ func (r *RoomserverInternalAPI) updateLatestEvents( } if err = u.doUpdateLatestEvents(); err != nil { - return err + return fmt.Errorf("u.doUpdateLatestEvents: %w", err) } succeeded = true @@ -137,7 +137,7 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error { // don't need to do anything, as we've handled it already. hasBeenSent, err := u.updater.HasEventBeenSent(u.stateAtEvent.EventNID) if err != nil { - return err + return fmt.Errorf("u.updater.HasEventBeenSent: %w", err) } else if hasBeenSent { return nil } @@ -145,7 +145,7 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error { // Update the roomserver_previous_events table with references. This // is effectively tracking the structure of the DAG. if err = u.updater.StorePreviousEvents(u.stateAtEvent.EventNID, prevEvents); err != nil { - return err + return fmt.Errorf("u.updater.StorePreviousEvents: %w", err) } // Get the event reference for our new event. This will be used when @@ -156,7 +156,7 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error { // in the room. If it is then it isn't a latest event. alreadyReferenced, err := u.updater.IsReferenced(eventReference) if err != nil { - return err + return fmt.Errorf("u.updater.IsReferenced: %w", err) } // Work out what the latest events are. @@ -173,19 +173,19 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error { // Now that we know what the latest events are, it's time to get the // latest state. if err = u.latestState(); err != nil { - return err + return fmt.Errorf("u.latestState: %w", err) } // If we need to generate any output events then here's where we do it. // TODO: Move this! updates, err := u.api.updateMemberships(u.ctx, u.updater, u.removed, u.added) if err != nil { - return err + return fmt.Errorf("u.api.updateMemberships: %w", err) } update, err := u.makeOutputNewRoomEvent() if err != nil { - return err + return fmt.Errorf("u.makeOutputNewRoomEvent: %w", err) } updates = append(updates, *update) @@ -198,14 +198,18 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error { // the correct order, 2) that pending writes are resent across restarts. In order to avoid writing all the // necessary bookkeeping we'll keep the event sending synchronous for now. if err = u.api.WriteOutputEvents(u.event.RoomID(), updates); err != nil { - return err + return fmt.Errorf("u.api.WriteOutputEvents: %w", err) } if err = u.updater.SetLatestEvents(u.roomNID, u.latest, u.stateAtEvent.EventNID, u.newStateNID); err != nil { - return err + return fmt.Errorf("u.updater.SetLatestEvents: %w", err) } - return u.updater.MarkEventAsSent(u.stateAtEvent.EventNID) + if err = u.updater.MarkEventAsSent(u.stateAtEvent.EventNID); err != nil { + return fmt.Errorf("u.updater.MarkEventAsSent: %w", err) + } + + return nil } func (u *latestEventsUpdater) latestState() error { @@ -225,7 +229,7 @@ func (u *latestEventsUpdater) latestState() error { u.ctx, u.roomNID, latestStateAtEvents, ) if err != nil { - return err + return fmt.Errorf("roomState.CalculateAndStoreStateAfterEvents: %w", err) } // If we are overwriting the state then we should make sure that we @@ -244,7 +248,7 @@ func (u *latestEventsUpdater) latestState() error { u.ctx, u.oldStateNID, u.newStateNID, ) if err != nil { - return err + return fmt.Errorf("roomState.DifferenceBetweenStateSnapshots: %w", err) } // Also work out the state before the event removes and the event @@ -252,7 +256,11 @@ func (u *latestEventsUpdater) latestState() error { u.stateBeforeEventRemoves, u.stateBeforeEventAdds, err = roomState.DifferenceBetweeenStateSnapshots( u.ctx, u.newStateNID, u.stateAtEvent.BeforeStateSnapshotNID, ) - return err + if err != nil { + return fmt.Errorf("roomState.DifferenceBetweeenStateSnapshots: %w", err) + } + + return nil } func calculateLatest( |