summary refs log tree commit diff
path: root/synapse/server_notices
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2018-08-23 16:20:51 +0100
committerErik Johnston <erik@matrix.org>2018-08-23 16:21:20 +0100
commit7e6e588e60708be3e58f026bd65bd4680f9cd969 (patch)
treea4fb959c192c94f77b92e88d0b3ee8c98db135cb /synapse/server_notices
parentMerge pull request #3734 from matrix-org/travis/worker-docs (diff)
downloadsynapse-7e6e588e60708be3e58f026bd65bd4680f9cd969.tar.xz
Fix bug where we resent "limit exceeded" server notices
This was due to a bug where we mutated a cached event's contents
Diffstat (limited to 'synapse/server_notices')
-rw-r--r--synapse/server_notices/resource_limits_server_notices.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/synapse/server_notices/resource_limits_server_notices.py b/synapse/server_notices/resource_limits_server_notices.py
index 575697e54b..96eb97771f 100644
--- a/synapse/server_notices/resource_limits_server_notices.py
+++ b/synapse/server_notices/resource_limits_server_notices.py
@@ -76,6 +76,10 @@ class ResourceLimitsServerNotices(object):
 
         room_id = yield self._server_notices_manager.get_notice_room_for_user(user_id)
 
+        if not room_id:
+            logger.warn("Failed to get server notices room")
+            return
+
         yield self._check_and_set_tags(user_id, room_id)
         currently_blocked, ref_events = yield self._is_room_currently_blocked(room_id)
 
@@ -176,7 +180,7 @@ class ResourceLimitsServerNotices(object):
 
         referenced_events = []
         if pinned_state_event is not None:
-            referenced_events = pinned_state_event.content.get('pinned')
+            referenced_events = list(pinned_state_event.content.get('pinned', []))
 
         events = yield self._store.get_events(referenced_events)
         for event_id, event in iteritems(events):