2 files changed, 9 insertions, 0 deletions
diff --git a/synapse/federation/replication.py b/synapse/federation/replication.py
index 1b9e3ece09..88184caecd 100644
--- a/synapse/federation/replication.py
+++ b/synapse/federation/replication.py
@@ -864,6 +864,9 @@ class _TransactionQueue(object):
for deferred in deferreds:
if code == 200:
+ if retry_last_ts:
+ # this host is alive! reset retry schedule
+ self.store.set_destination_retry_timings(destination, 0, 0)
deferred.callback(None)
else:
self.start_retrying(destination, retry_interval)
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index 925eb5376e..7a79e2d117 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -207,6 +207,12 @@ class FederationHandler(BaseHandler):
e.msg,
affected=event.event_id,
)
+
+ # if we're receiving valid events from an origin,
+ # it's probably a good idea to mark it as not in retry-state
+ # for sending (although this is a bit of a leap)
+ if ((self.store.get_destination_retry_timings(origin))[0]):
+ self.store.set_destination_retry_timings(origin, 0, 0)
room = yield self.store.get_room(event.room_id)
|