mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 05:36:05 +00:00
f5c93fc993
This fixes #8518 by adding a conditional check on `SyncResult` in a function when `prev_stream_token == current_stream_token`, as a sanity check. In `CachedResponse.set.<remove>()`, the result is immediately popped from the cache if the conditional function returns "false". This prevents the caching of a timed-out `SyncResult` (that has `next_key` as the stream key that produced that `SyncResult`). The cache is prevented from returning a `SyncResult` that makes the client request the same stream key over and over again, effectively making it stuck in a loop of requesting and getting a response immediately for as long as the cache keeps those values. Signed-off-by: Jonathan de Jong <jonathan@automatia.nl> |
||
---|---|---|
.. | ||
caches | ||
__init__.py | ||
async_helpers.py | ||
daemonize.py | ||
distributor.py | ||
file_consumer.py | ||
frozenutils.py | ||
hash.py | ||
httpresourcetree.py | ||
iterutils.py | ||
jsonobject.py | ||
logcontext.py | ||
logformatter.py | ||
manhole.py | ||
metrics.py | ||
module_loader.py | ||
msisdn.py | ||
patch_inline_callbacks.py | ||
ratelimitutils.py | ||
retryutils.py | ||
rlimit.py | ||
stringutils.py | ||
templates.py | ||
threepids.py | ||
versionstring.py | ||
wheel_timer.py |