parent
8c3bcea2da
commit
8a4fb7a6ba
|
@ -0,0 +1 @@
|
||||||
|
Fix a long-standing bu in `/sync` where timeout=0 does not skip caching, resulting in slow calls in cases where there are no new changes. Contributed by @PlasmaIntec.
|
|
@ -387,16 +387,16 @@ class SyncHandler:
|
||||||
from_token=since_token,
|
from_token=since_token,
|
||||||
)
|
)
|
||||||
|
|
||||||
# if nothing has happened in any of the users' rooms since /sync was called,
|
# if nothing has happened in any of the users' rooms since /sync was called,
|
||||||
# the resultant next_batch will be the same as since_token (since the result
|
# the resultant next_batch will be the same as since_token (since the result
|
||||||
# is generated when wait_for_events is first called, and not regenerated
|
# is generated when wait_for_events is first called, and not regenerated
|
||||||
# when wait_for_events times out).
|
# when wait_for_events times out).
|
||||||
#
|
#
|
||||||
# If that happens, we mustn't cache it, so that when the client comes back
|
# If that happens, we mustn't cache it, so that when the client comes back
|
||||||
# with the same cache token, we don't immediately return the same empty
|
# with the same cache token, we don't immediately return the same empty
|
||||||
# result, causing a tightloop. (#8518)
|
# result, causing a tightloop. (#8518)
|
||||||
if result.next_batch == since_token:
|
if result.next_batch == since_token:
|
||||||
cache_context.should_cache = False
|
cache_context.should_cache = False
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
if sync_config.filter_collection.lazy_load_members():
|
if sync_config.filter_collection.lazy_load_members():
|
||||||
|
|
Loading…
Reference in New Issue