mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-11-26 22:00:03 -05:00
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 | ||