From 6da861ae6937e85689825c06c9198673f5209a2b Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Fri, 1 Jul 2022 10:52:10 +0100 Subject: [PATCH] `_process_received_pdu`: Improve exception handling (#13145) `_check_event_auth` is expected to raise `AuthError`s, so no need to log it again. --- changelog.d/13145.misc | 1 + synapse/handlers/federation_event.py | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 changelog.d/13145.misc diff --git a/changelog.d/13145.misc b/changelog.d/13145.misc new file mode 100644 index 000000000..d5e2dba86 --- /dev/null +++ b/changelog.d/13145.misc @@ -0,0 +1 @@ +Improve exception handling when processing events received over federation. diff --git a/synapse/handlers/federation_event.py b/synapse/handlers/federation_event.py index b7c54e642..479d936dc 100644 --- a/synapse/handlers/federation_event.py +++ b/synapse/handlers/federation_event.py @@ -1092,20 +1092,19 @@ class FederationEventHandler: logger.debug("Processing event: %s", event) assert not event.internal_metadata.outlier + context = await self._state_handler.compute_event_context( + event, + state_ids_before_event=state_ids, + ) try: - context = await self._state_handler.compute_event_context( - event, - state_ids_before_event=state_ids, - ) context = await self._check_event_auth( origin, event, context, ) except AuthError as e: - # FIXME richvdh 2021/10/07 I don't think this is reachable. Let's log it - # for now - logger.exception("Unexpected AuthError from _check_event_auth") + # This happens only if we couldn't find the auth events. We'll already have + # logged a warning, so now we just convert to a FederationError. raise FederationError("ERROR", e.code, e.msg, affected=event.event_id) if not backfilled and not context.rejected: