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.pull/3947/head
parent
fbe5ba25f6
commit
787d22ed6c
|
@ -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
|
||||
filtered_types = [EventTypes.Member]
|
||||
|
||||
|
@ -726,6 +722,13 @@ class SyncHandler(object):
|
|||
}
|
||||
|
||||
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:
|
||||
current_state_ids = yield self.store.get_state_ids_for_event(
|
||||
batch.events[-1].event_id, types=types,
|
||||
|
@ -794,7 +797,7 @@ class SyncHandler(object):
|
|||
else:
|
||||
state_ids = {}
|
||||
if lazy_load_members:
|
||||
if types:
|
||||
if types and batch.events:
|
||||
# We're returning an incremental sync, with no
|
||||
# "gap" since the previous sync, so normally there would be
|
||||
# no state to return.
|
||||
|
|
Loading…
Reference in New Issue