Skip to content
Snippets Groups Projects
Commit 5385a023 authored by Nick Mathewson's avatar Nick Mathewson :game_die:
Browse files

Do not apply 'max_failures' to random-exponential schedules.

Fixes bug 20536; bugfix on 0.2.9.1-alpha.
parent e9ce1819
No related branches found
No related tags found
No related merge requests found
o Major bugfixes (download scheduling):
- When using an exponential backoff schedule, do not give up on
dowloading just because we have failed a bunch of times. Since
each delay is longer than the last, retrying indefinitely won't
hurt. Fixes bug 20536; bugfix on 0.2.9.1-alpha.
...@@ -114,9 +114,15 @@ static inline int ...@@ -114,9 +114,15 @@ static inline int
download_status_is_ready(download_status_t *dls, time_t now, download_status_is_ready(download_status_t *dls, time_t now,
int max_failures) int max_failures)
{ {
int under_failure_limit = (dls->n_download_failures <= max_failures if (dls->backoff == DL_SCHED_DETERMINISTIC) {
&& dls->n_download_attempts <= max_failures); /* Deterministic schedules can hit an endpoint; exponential backoff
return (under_failure_limit && dls->next_attempt_at <= now); * schedules just wait longer and longer. */
int under_failure_limit = (dls->n_download_failures <= max_failures
&& dls->n_download_attempts <= max_failures);
if (!under_failure_limit)
return 0;
}
return dls->next_attempt_at <= now;
} }
static void download_status_mark_impossible(download_status_t *dl); static void download_status_mark_impossible(download_status_t *dl);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment