mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Do not apply 'max_failures' to random-exponential schedules.
Fixes bug 20536; bugfix on 0.2.9.1-alpha.
This commit is contained in:
parent
e9ce181955
commit
5385a023e1
6
changes/bug20536
Normal file
6
changes/bug20536
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
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
|
|||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user