forked from MirrorHub/synapse
Only lazy load self-members on initial sync
Given we have disabled lazy loading for incr syncs in #3840, we can make self-LL more efficient by only doing it on initial sync. Also adds a bounds check for if/when we change our mind, so that we don't try to include LL members on sync responses with no timeline.
This commit is contained in:
parent
fbe5ba25f6
commit
787d22ed6c
1
changelog.d/3936.bugfix
Normal file
1
changelog.d/3936.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix out-of-bounds error when LLing yourself
|
|
@ -713,10 +713,6 @@ class SyncHandler(object):
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
# always make sure we LL ourselves so we know we're in the room
|
|
||||||
# (if we are), to fix https://github.com/vector-im/riot-web/issues/7209
|
|
||||||
types.append((EventTypes.Member, sync_config.user.to_string()))
|
|
||||||
|
|
||||||
# only apply the filtering to room members
|
# only apply the filtering to room members
|
||||||
filtered_types = [EventTypes.Member]
|
filtered_types = [EventTypes.Member]
|
||||||
|
|
||||||
|
@ -726,6 +722,13 @@ class SyncHandler(object):
|
||||||
}
|
}
|
||||||
|
|
||||||
if full_state:
|
if full_state:
|
||||||
|
if lazy_load_members:
|
||||||
|
# always make sure we LL ourselves so we know we're in the room
|
||||||
|
# (if we are) to fix https://github.com/vector-im/riot-web/issues/7209
|
||||||
|
# We only need apply this on full state syncs given we disabled
|
||||||
|
# LL for incr syncs in #3840.
|
||||||
|
types.append((EventTypes.Member, sync_config.user.to_string()))
|
||||||
|
|
||||||
if batch:
|
if batch:
|
||||||
current_state_ids = yield self.store.get_state_ids_for_event(
|
current_state_ids = yield self.store.get_state_ids_for_event(
|
||||||
batch.events[-1].event_id, types=types,
|
batch.events[-1].event_id, types=types,
|
||||||
|
@ -794,7 +797,7 @@ class SyncHandler(object):
|
||||||
else:
|
else:
|
||||||
state_ids = {}
|
state_ids = {}
|
||||||
if lazy_load_members:
|
if lazy_load_members:
|
||||||
if types:
|
if types and batch.events:
|
||||||
# We're returning an incremental sync, with no
|
# We're returning an incremental sync, with no
|
||||||
# "gap" since the previous sync, so normally there would be
|
# "gap" since the previous sync, so normally there would be
|
||||||
# no state to return.
|
# no state to return.
|
||||||
|
|
Loading…
Reference in a new issue