diff options
author | Erik Johnston <erik@matrix.org> | 2019-10-09 16:52:21 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2019-10-09 16:52:21 +0100 |
commit | 5c1f886c75979b606c1e8bb45fcd8b7d26a71f39 (patch) | |
tree | ee651459cda811d4ac5d11f1e2fc4d9c06df037a /synapse/storage/events_worker.py | |
parent | Update (diff) | |
parent | Merge pull request #6185 from matrix-org/erikj/fix_censored_evnets (diff) | |
download | synapse-5c1f886c75979b606c1e8bb45fcd8b7d26a71f39.tar.xz |
Merge branch 'develop' of github.com:matrix-org/synapse into erikj/patch_inner
Diffstat (limited to 'synapse/storage/events_worker.py')
-rw-r--r-- | synapse/storage/events_worker.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/synapse/storage/events_worker.py b/synapse/storage/events_worker.py index c6fa7f82fd..57ce0304e9 100644 --- a/synapse/storage/events_worker.py +++ b/synapse/storage/events_worker.py @@ -238,6 +238,20 @@ class EventsWorkerStore(SQLBaseStore): # we have to recheck auth now. if not allow_rejected and entry.event.type == EventTypes.Redaction: + if not hasattr(entry.event, "redacts"): + # A redacted redaction doesn't have a `redacts` key, in + # which case lets just withhold the event. + # + # Note: Most of the time if the redactions has been + # redacted we still have the un-redacted event in the DB + # and so we'll still see the `redacts` key. However, this + # isn't always true e.g. if we have censored the event. + logger.debug( + "Withholding redaction event %s as we don't have redacts key", + event_id, + ) + continue + redacted_event_id = entry.event.redacts event_map = yield self._get_events_from_cache_or_db([redacted_event_id]) original_event_entry = event_map.get(redacted_event_id) |