Merge pull request #3914 from matrix-org/erikj/remove_retry_cache

Remove get_destination_retry_timings cache
This commit is contained in:
Erik Johnston 2018-09-20 10:54:49 +01:00 committed by GitHub
commit 3fd68d533b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 1 additions and 8 deletions

1
changelog.d/3914.bugfix Normal file
View file

@ -0,0 +1 @@
Fix bug where outbound federation would stop talking to some servers when using workers

View file

@ -23,7 +23,6 @@ from canonicaljson import encode_canonical_json
from twisted.internet import defer
from synapse.metrics.background_process_metrics import run_as_background_process
from synapse.util.caches.descriptors import cached
from ._base import SQLBaseStore, db_to_json
@ -156,7 +155,6 @@ class TransactionStore(SQLBaseStore):
"""
pass
@cached(max_entries=10000)
def get_destination_retry_timings(self, destination):
"""Gets the current retry timings (if any) for a given destination.
@ -198,8 +196,6 @@ class TransactionStore(SQLBaseStore):
retry_interval (int) - how long until next retry in ms
"""
# XXX: we could chose to not bother persisting this if our cache thinks
# this is a NOOP
return self.runInteraction(
"set_destination_retry_timings",
self._set_destination_retry_timings,
@ -212,10 +208,6 @@ class TransactionStore(SQLBaseStore):
retry_last_ts, retry_interval):
self.database_engine.lock_table(txn, "destinations")
self._invalidate_cache_and_stream(
txn, self.get_destination_retry_timings, (destination,)
)
# We need to be careful here as the data may have changed from under us
# due to a worker setting the timings.