2 files changed, 7 insertions, 6 deletions
diff --git a/changelog.d/10263.feature b/changelog.d/10263.feature
new file mode 100644
index 0000000000..7b1d2fe60f
--- /dev/null
+++ b/changelog.d/10263.feature
@@ -0,0 +1 @@
+Mark events received over federation which fail a spam check as "soft-failed".
diff --git a/synapse/federation/federation_base.py b/synapse/federation/federation_base.py
index c066617b92..2bfe6a3d37 100644
--- a/synapse/federation/federation_base.py
+++ b/synapse/federation/federation_base.py
@@ -89,12 +89,12 @@ class FederationBase:
result = await self.spam_checker.check_event_for_spam(pdu)
if result:
- logger.warning(
- "Event contains spam, redacting %s: %s",
- pdu.event_id,
- pdu.get_pdu_json(),
- )
- return prune_event(pdu)
+ logger.warning("Event contains spam, soft-failing %s", pdu.event_id)
+ # we redact (to save disk space) as well as soft-failing (to stop
+ # using the event in prev_events).
+ redacted_event = prune_event(pdu)
+ redacted_event.internal_metadata.soft_failed = True
+ return redacted_event
return pdu
|