1 files changed, 7 insertions, 1 deletions
diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py
index 47cfe62c82..42cd528908 100644
--- a/synapse/handlers/presence.py
+++ b/synapse/handlers/presence.py
@@ -858,6 +858,9 @@ class PresenceEventSource(object):
presence = self.hs.get_handlers().presence_handler
cachemap = presence._user_cachemap
+
+ max_serial = presence._user_cachemap_latest_serial
+
clock = self.clock
latest_serial = 0
@@ -866,7 +869,7 @@ class PresenceEventSource(object):
for observed_user in cachemap.keys():
cached = cachemap[observed_user]
- if cached.serial <= from_key:
+ if cached.serial <= from_key or cached.serial > max_serial:
continue
if not (yield self.is_visible(observer_user, observed_user)):
@@ -881,6 +884,9 @@ class PresenceEventSource(object):
if serial < from_key:
break
+ if serial > max_serial:
+ continue
+
latest_serial = max(latest_serial, serial)
for u in user_ids:
updates.append({
|