summary refs log tree commit diff
path: root/synapse/push
diff options
context:
space:
mode:
authorAndrew Morgan <1342360+anoadragon453@users.noreply.github.com>2024-03-05 12:27:27 +0000
committerGitHub <noreply@github.com>2024-03-05 12:27:27 +0000
commit8a05304222db744c48c7640a34d5b35e5ecdc22e (patch)
treeb38dda86f99082572a524c90b73395ca3c86a1cd /synapse/push
parent1.102.0rc1 (diff)
downloadsynapse-8a05304222db744c48c7640a34d5b35e5ecdc22e.tar.xz
Revert "Improve DB performance of calculating badge counts for push. (#16756)" (#16979)
Diffstat (limited to 'synapse/push')
-rw-r--r--synapse/push/push_tools.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py
index 76c7ab6477..1ef881f702 100644
--- a/synapse/push/push_tools.py
+++ b/synapse/push/push_tools.py
@@ -29,11 +29,17 @@ from synapse.storage.databases.main import DataStore
 
 async def get_badge_count(store: DataStore, user_id: str, group_by_room: bool) -> int:
     invites = await store.get_invited_rooms_for_local_user(user_id)
+    joins = await store.get_rooms_for_user(user_id)
 
     badge = len(invites)
 
     room_to_count = await store.get_unread_counts_by_room_for_user(user_id)
-    for _room_id, notify_count in room_to_count.items():
+    for room_id, notify_count in room_to_count.items():
+        # room_to_count may include rooms which the user has left,
+        # ignore those.
+        if room_id not in joins:
+            continue
+
         if notify_count == 0:
             continue