Skip to content

Commit 5547cee

Browse files
committed
Merge branch 'hack-reduce-as-recovery-backoff' into 'master'
Tweak AS recovery backoff. See merge request beeper/synapse!15
2 parents 35cd7f8 + 56a7845 commit 5547cee

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

synapse/appservice/scheduler.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ async def _is_service_up(self, service: ApplicationService) -> bool:
244244
return state == ApplicationServiceState.UP or state is None
245245

246246

247+
# NOTE: Beeper changes from upstream to the backoff system
247248
class _Recoverer:
248249
"""Manages retries and backoff for a DOWN appservice.
249250
@@ -263,21 +264,20 @@ def __init__(self, clock, store, as_api, service, callback):
263264
self.as_api = as_api
264265
self.service = service
265266
self.callback = callback
266-
self.backoff_counter = 1
267+
self.backoff_counter = 0
267268

268269
def recover(self):
269270
def _retry():
270271
run_as_background_process(
271272
"as-recoverer-%s" % (self.service.id,), self.retry
272273
)
273274

274-
delay = 2 ** self.backoff_counter
275+
delay = self.backoff_counter
275276
logger.info("Scheduling retries on %s in %fs", self.service.id, delay)
276277
self.clock.call_later(delay, _retry)
277278

278279
def _backoff(self):
279-
# cap the backoff to be around 8.5min => (2^9) = 512 secs
280-
if self.backoff_counter < 9:
280+
if self.backoff_counter < 5:
281281
self.backoff_counter += 1
282282
self.recover()
283283

@@ -301,7 +301,7 @@ async def retry(self):
301301
await txn.complete(self.store)
302302

303303
# reset the backoff counter and then process the next transaction
304-
self.backoff_counter = 1
304+
self.backoff_counter = 0
305305

306306
except Exception:
307307
logger.exception("Unexpected error running retries")

0 commit comments

Comments
 (0)