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

Commit

Permalink
Remove redundant checks on room forgottenness
Browse files Browse the repository at this point in the history
Fixes #3550
  • Loading branch information
richvdh committed Jul 23, 2018
1 parent 4f67623 commit dae6dc1
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 46 deletions.
1 change: 1 addition & 0 deletions changelog.d/3350.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove redundant checks on who_forgot_in_room
13 changes: 0 additions & 13 deletions synapse/storage/push_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

from twisted.internet import defer

from synapse.api.constants import EventTypes
from synapse.push.baserules import list_with_base_rules
from synapse.storage.appservice import ApplicationServiceWorkerStore
from synapse.storage.pusher import PusherWorkerStore
Expand Down Expand Up @@ -247,18 +246,6 @@ def _bulk_get_push_rules_for_room(self, room_id, state_group, current_state_ids,
if uid in local_users_in_room:
user_ids.add(uid)

forgotten = yield self.who_forgot_in_room(
event.room_id, on_invalidate=cache_context.invalidate,
)

for row in forgotten:
user_id = row["user_id"]
event_id = row["event_id"]

mem_id = current_state_ids.get((EventTypes.Member, user_id), None)
if event_id == mem_id:
user_ids.discard(user_id)

rules_by_user = yield self.bulk_get_push_rules(
user_ids, on_invalidate=cache_context.invalidate,
)
Expand Down
15 changes: 0 additions & 15 deletions synapse/storage/roommember.py
Original file line number Diff line number Diff line change
Expand Up @@ -458,18 +458,6 @@ def _get_joined_hosts(self, room_id, state_group, current_state_ids, state_entry
def _get_joined_hosts_cache(self, room_id):
return _JoinedHostsCache(self, room_id)

@cached()
def who_forgot_in_room(self, room_id):
return self._simple_select_list(
table="room_memberships",
retcols=("user_id", "event_id"),
keyvalues={
"room_id": room_id,
"forgotten": 1,
},
desc="who_forgot"
)


class RoomMemberStore(RoomMemberWorkerStore):
def __init__(self, db_conn, hs):
Expand Down Expand Up @@ -578,9 +566,6 @@ def f(txn):
txn.execute(sql, (user_id, room_id))

txn.call_after(self.did_forget.invalidate, (user_id, room_id))
self._invalidate_cache_and_stream(
txn, self.who_forgot_in_room, (room_id,)
)
return self.runInteraction("forget_membership", f)

@cachedInlineCallbacks(num_args=2)
Expand Down
19 changes: 1 addition & 18 deletions synapse/visibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
from synapse.api.constants import EventTypes, Membership
from synapse.events.utils import prune_event
from synapse.types import get_domain_from_id
from synapse.util.logcontext import make_deferred_yieldable, preserve_fn

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -75,19 +74,6 @@ def filter_events_for_client(store, user_id, events, is_peeking=False,
types=types,
)

forgotten = yield make_deferred_yieldable(defer.gatherResults([
defer.maybeDeferred(
preserve_fn(store.who_forgot_in_room),
room_id,
)
for room_id in frozenset(e.room_id for e in events)
], consumeErrors=True))

# Set of membership event_ids that have been forgotten
event_id_forgotten = frozenset(
row["event_id"] for rows in forgotten for row in rows
)

ignore_dict_content = yield store.get_global_account_data_by_type_for_user(
"m.ignored_user_list", user_id,
)
Expand Down Expand Up @@ -176,10 +162,7 @@ def allowed(event):
if membership is None:
membership_event = state.get((EventTypes.Member, user_id), None)
if membership_event:
# XXX why do we do this?
# https://github.com/matrix-org/synapse/issues/3350
if membership_event.event_id not in event_id_forgotten:
membership = membership_event.membership
membership = membership_event.membership

# if the user was a member of the room at the time of the event,
# they can see it.
Expand Down

0 comments on commit dae6dc1

Please sign in to comment.