Be more verbose when logging state resets

This commit is contained in:
Till Faelligen 2023-11-29 09:15:04 +01:00
parent 143285708b
commit 4ae7335b01
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E

View file

@ -279,22 +279,26 @@ func (u *latestEventsUpdater) latestState(ctx context.Context, roomInfo *types.R
if removed := len(u.removed) - len(u.added); !u.rewritesState && removed > 0 { if removed := len(u.removed) - len(u.added); !u.rewritesState && removed > 0 {
logrus.WithFields(logrus.Fields{ logrus.WithFields(logrus.Fields{
"event_id": u.event.EventID(), "event_id": u.event.EventID(),
"room_id": u.event.RoomID().String(), "room_id": u.event.RoomID().String(),
"old_state_nid": u.oldStateNID, "old_state_nid": u.oldStateNID,
"new_state_nid": u.newStateNID, "new_state_nid": u.newStateNID,
"old_latest": u.oldLatest.EventIDs(), "old_latest": u.oldLatest.EventIDs(),
"new_latest": u.latest.EventIDs(), "new_latest": u.latest.EventIDs(),
"rewrites_state": u.rewritesState,
"state_at_event": fmt.Sprintf("%#v", u.stateAtEvent),
}).Warnf("State reset detected (removing %d events)", removed) }).Warnf("State reset detected (removing %d events)", removed)
sentry.WithScope(func(scope *sentry.Scope) { sentry.WithScope(func(scope *sentry.Scope) {
scope.SetLevel("warning") scope.SetLevel("warning")
scope.SetContext("State reset", map[string]interface{}{ scope.SetContext("State reset", map[string]interface{}{
"Event ID": u.event.EventID(), "Event ID": u.event.EventID(),
"Old state NID": fmt.Sprintf("%d", u.oldStateNID), "Old state NID": fmt.Sprintf("%d", u.oldStateNID),
"New state NID": fmt.Sprintf("%d", u.newStateNID), "New state NID": fmt.Sprintf("%d", u.newStateNID),
"Old latest": u.oldLatest.EventIDs(), "Old latest": u.oldLatest.EventIDs(),
"New latest": u.latest.EventIDs(), "New latest": u.latest.EventIDs(),
"State removed": removed, "State removed": removed,
"State rewritten": fmt.Sprintf("%v", u.rewritesState),
"State at event": fmt.Sprintf("%#v", u.stateAtEvent),
}) })
sentry.CaptureMessage("State reset detected") sentry.CaptureMessage("State reset detected")
}) })