diff options
author | Eric Eastwood <erice@element.io> | 2021-06-17 08:59:45 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-17 14:59:45 +0100 |
commit | a911dd768bc0dc49df9a47ca864b737174345bb7 (patch) | |
tree | 080bc6a03992eef6ecd3765a6e93513edd1f000a | |
parent | Fix persist_events to stop leaking opentracing contexts (#10193) (diff) | |
download | synapse-a911dd768bc0dc49df9a47ca864b737174345bb7.tar.xz |
Add fields to better debug where events are being soft_failed (#10168)
Follow-up to https://github.com/matrix-org/synapse/pull/10156#discussion_r650292223
-rw-r--r-- | changelog.d/10168.misc | 1 | ||||
-rw-r--r-- | synapse/handlers/federation.py | 21 |
2 files changed, 19 insertions, 3 deletions
diff --git a/changelog.d/10168.misc b/changelog.d/10168.misc new file mode 100644 index 0000000000..5ca7b89806 --- /dev/null +++ b/changelog.d/10168.misc @@ -0,0 +1 @@ +Add extra logging fields to better debug where events are being soft failed. diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index b3a93212f1..1ecdafaadd 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -2423,7 +2423,11 @@ class FederationHandler(BaseHandler): ) async def _check_for_soft_fail( - self, event: EventBase, state: Optional[Iterable[EventBase]], backfilled: bool + self, + event: EventBase, + state: Optional[Iterable[EventBase]], + backfilled: bool, + origin: str, ) -> None: """Checks if we should soft fail the event; if so, marks the event as such. @@ -2432,6 +2436,7 @@ class FederationHandler(BaseHandler): event state: The state at the event if we don't have all the event's prev events backfilled: Whether the event is from backfill + origin: The host the event originates from. """ # For new (non-backfilled and non-outlier) events we check if the event # passes auth based on the current state. If it doesn't then we @@ -2501,7 +2506,17 @@ class FederationHandler(BaseHandler): try: event_auth.check(room_version_obj, event, auth_events=current_auth_events) except AuthError as e: - logger.warning("Soft-failing %r because %s", event, e) + logger.warning( + "Soft-failing %r (from %s) because %s", + event, + e, + origin, + extra={ + "room_id": event.room_id, + "mxid": event.sender, + "hs": origin, + }, + ) soft_failed_event_counter.inc() event.internal_metadata.soft_failed = True @@ -2614,7 +2629,7 @@ class FederationHandler(BaseHandler): context.rejected = RejectedReason.AUTH_ERROR if not context.rejected: - await self._check_for_soft_fail(event, state, backfilled) + await self._check_for_soft_fail(event, state, backfilled, origin=origin) if event.type == EventTypes.GuestAccess and not context.rejected: await self.maybe_kick_guest_users(event) |