Merge branch 's7evink/complement' of github.com:matrix-org/dendrite into s7evink/complement

This commit is contained in:
Till Faelligen 2022-08-23 10:28:56 +02:00
commit 76748ae5ea
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E

View file

@ -301,7 +301,7 @@ func (r *Inputer) processRoomEvent(
// bother doing this if the event was already rejected as it just ends up // bother doing this if the event was already rejected as it just ends up
// burning CPU time. // burning CPU time.
historyVisibility := gomatrixserverlib.HistoryVisibilityShared // Default to shared. historyVisibility := gomatrixserverlib.HistoryVisibilityShared // Default to shared.
if input.Kind != api.KindOutlier && rejectionErr == nil && !isRejected && !softfail { if input.Kind != api.KindOutlier && rejectionErr == nil && !isRejected {
var err error var err error
historyVisibility, rejectionErr, err = r.processStateBefore(ctx, input, missingPrev) historyVisibility, rejectionErr, err = r.processStateBefore(ctx, input, missingPrev)
if err != nil { if err != nil {
@ -313,7 +313,7 @@ func (r *Inputer) processRoomEvent(
} }
// Store the event. // Store the event.
_, _, stateAtEvent, redactionEvent, redactedEventID, err := r.DB.StoreEvent(ctx, event, authEventNIDs, isRejected || softfail) _, _, stateAtEvent, redactionEvent, redactedEventID, err := r.DB.StoreEvent(ctx, event, authEventNIDs, isRejected)
if err != nil { if err != nil {
return fmt.Errorf("updater.StoreEvent: %w", err) return fmt.Errorf("updater.StoreEvent: %w", err)
} }
@ -353,14 +353,18 @@ func (r *Inputer) processRoomEvent(
} }
} }
// We stop here if the event is rejected: We've stored it but won't update forward extremities or notify anyone about it. // We stop here if the event is rejected: We've stored it but won't update
if isRejected || softfail { // forward extremities or notify downstream components about it.
logger.WithError(rejectionErr).WithFields(logrus.Fields{ switch {
"room_id": event.RoomID(), case isRejected:
"event_id": event.EventID(), logger.WithError(rejectionErr).Warn("Stored rejected event")
"soft_fail": softfail, if rejectionErr != nil {
"missing_prev": missingPrev, return types.RejectedError(rejectionErr.Error())
}).Warn("Stored rejected event") }
return nil
case softfail:
logger.WithError(rejectionErr).Warn("Stored soft-failed event")
if rejectionErr != nil { if rejectionErr != nil {
return types.RejectedError(rejectionErr.Error()) return types.RejectedError(rejectionErr.Error())
} }