Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Skip filtering during push if there are no push actions
Browse files Browse the repository at this point in the history
  • Loading branch information
erikjohnston committed Sep 30, 2022
1 parent b2aadd8 commit 350a804
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
5 changes: 5 additions & 0 deletions synapse/push/bulk_push_rule_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,11 @@ async def action_for_event_by_user(
# Push rules say we should notify the user of this event
actions_by_user[uid] = actions

# If there aren't any actions then we can skip the rest of the
# processing.
if not actions_by_user:
return

# This is a check for the case where user joins a room without being
# allowed to see history, and then the server receives a delayed event
# from before the user joined, which they should not be pushed for
Expand Down
4 changes: 4 additions & 0 deletions synapse/visibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,10 @@ async def filter_event_for_clients_with_state(
if event.internal_metadata.is_soft_failed():
return []

# Fast path if we don't have any user IDs to check.
if not user_ids:
return ()

# Make a set for all user IDs that haven't been filtered out by a check.
allowed_user_ids = set(user_ids)

Expand Down
4 changes: 2 additions & 2 deletions tests/rest/client/test_rooms.py
Original file line number Diff line number Diff line change
Expand Up @@ -710,7 +710,7 @@ def test_post_room_no_keys(self) -> None:
self.assertEqual(HTTPStatus.OK, channel.code, channel.result)
self.assertTrue("room_id" in channel.json_body)
assert channel.resource_usage is not None
self.assertEqual(35, channel.resource_usage.db_txn_count)
self.assertEqual(34, channel.resource_usage.db_txn_count)

def test_post_room_initial_state(self) -> None:
# POST with initial_state config key, expect new room id
Expand All @@ -723,7 +723,7 @@ def test_post_room_initial_state(self) -> None:
self.assertEqual(HTTPStatus.OK, channel.code, channel.result)
self.assertTrue("room_id" in channel.json_body)
assert channel.resource_usage is not None
self.assertEqual(38, channel.resource_usage.db_txn_count)
self.assertEqual(37, channel.resource_usage.db_txn_count)

def test_post_room_visibility_key(self) -> None:
# POST with visibility config key, expect new room id
Expand Down

0 comments on commit 350a804

Please sign in to comment.