mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-07-27 18:35:14 -04:00
Fix a long-standing bug where an initial sync would not respond to changes to the list of ignored users if there was an initial sync cached. (#15163)
This commit is contained in:
parent
682d31c702
commit
d62cd940cb
4 changed files with 77 additions and 2 deletions
|
@ -16,7 +16,7 @@ import logging
|
|||
from collections import defaultdict
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
|
||||
|
||||
from synapse.api.constants import EduTypes, Membership, PresenceState
|
||||
from synapse.api.constants import AccountDataTypes, EduTypes, Membership, PresenceState
|
||||
from synapse.api.errors import Codes, StoreError, SynapseError
|
||||
from synapse.api.filtering import FilterCollection
|
||||
from synapse.api.presence import UserPresenceState
|
||||
|
@ -139,7 +139,28 @@ class SyncRestServlet(RestServlet):
|
|||
device_id,
|
||||
)
|
||||
|
||||
request_key = (user, timeout, since, filter_id, full_state, device_id)
|
||||
# Stream position of the last ignored users account data event for this user,
|
||||
# if we're initial syncing.
|
||||
# We include this in the request key to invalidate an initial sync
|
||||
# in the response cache once the set of ignored users has changed.
|
||||
# (We filter out ignored users from timeline events, so our sync response
|
||||
# is invalid once the set of ignored users changes.)
|
||||
last_ignore_accdata_streampos: Optional[int] = None
|
||||
if not since:
|
||||
# No `since`, so this is an initial sync.
|
||||
last_ignore_accdata_streampos = await self.store.get_latest_stream_id_for_global_account_data_by_type_for_user(
|
||||
user.to_string(), AccountDataTypes.IGNORED_USER_LIST
|
||||
)
|
||||
|
||||
request_key = (
|
||||
user,
|
||||
timeout,
|
||||
since,
|
||||
filter_id,
|
||||
full_state,
|
||||
device_id,
|
||||
last_ignore_accdata_streampos,
|
||||
)
|
||||
|
||||
if filter_id is None:
|
||||
filter_collection = self.filtering.DEFAULT_FILTER_COLLECTION
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue