This reduces the number of retries that might spam APIs.
There is some complexity here which is left un-managed -- for
instance, maybe_restart_mirroring_script does a number of restart
attempts, and then fails, but will be retried every 15s by the
surrounding process_loop. Previously, it would merely have looped
forever inside maybe_restart_mirroring_script.
Three loops are intentionally left as infinite while True loops,
that merely cap their backoff at the default 90s. Their callers do
not expect, or have any way to handle more gracefully, a failure of
the expected-infinite-loop in process_loop or zulip_to_zephyr.
They maintain their previous behavior of retrying forever, albeit more
slowly.
This reduces the number of retries that might spam APIs.
There is some complexity here which is left un-managed -- for instance, maybe_restart_mirroring_script does a number of restart attempts, and then fails, but will be retried every 15s by the surrounding
process_loop
. Previously, it would merely have looped forever inside maybe_restart_mirroring_script.Three loops are intentionally left as infinite
while True
loops, that merely cap their backoff at the default 90s. Their callers do not expect, or have any way to handle more gracefully, a failure of the expected-infinite-loop inprocess_loop
orzulip_to_zephyr
. They maintain their previous behavior of retrying forever, albeit more slowly.