summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2017-05-26 10:46:03 +0100
committerErik Johnston <erik@matrix.org>2017-05-26 10:46:03 +0100
commit619e8ecd0c123602c20eb3a4ce45bdefb79d5900 (patch)
treeb522d67dc21d11f496cd52d6a86c2851af718135
parentFix typing tests (diff)
downloadsynapse-619e8ecd0c123602c20eb3a4ce45bdefb79d5900.tar.xz
Handle None state group correctly
-rw-r--r--synapse/state.py6
-rw-r--r--synapse/storage/roommember.py5
2 files changed, 7 insertions, 4 deletions
diff --git a/synapse/state.py b/synapse/state.py
index 95dbe02e50..5fbe0a0977 100644
--- a/synapse/state.py
+++ b/synapse/state.py
@@ -364,11 +364,11 @@ class StateHandler(object):
 
             prev_group = None
             delta_ids = None
-            for old_group, old_ids in state_groups_ids.items():
-                if not set(new_state.iterkeys()) - set(old_ids.iterkeys()):
+            for old_group, old_ids in state_groups_ids.iteritems():
+                if not set(new_state) - set(old_ids):
                     n_delta_ids = {
                         k: v
-                        for k, v in new_state.items()
+                        for k, v in new_state.iteritems()
                         if old_ids.get(k) != v
                     }
                     if not delta_ids or len(n_delta_ids) < len(delta_ids):
diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py
index 8c4a5f9f2e..0e9e71f600 100644
--- a/synapse/storage/roommember.py
+++ b/synapse/storage/roommember.py
@@ -692,7 +692,10 @@ class _JoinedHostsCache(object):
                     host = intern_string(get_domain_from_id(user_id))
                     self.hosts_to_joined_users.setdefault(host, set()).add(user_id)
 
-            self.state_group = state_entry.state_group
+            if state_entry.state_group:
+                self.state_group = state_entry.state_group
+            else:
+                self.state_group = object()
             self._len = sum(len(v) for v in self.hosts_to_joined_users.itervalues())
         defer.returnValue(frozenset(self.hosts_to_joined_users))