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,
|
||||
int max_failures)
|
||||
{
|
||||
if (dls->backoff == DL_SCHED_DETERMINISTIC) {
|
||||
/* Deterministic schedules can hit an endpoint; exponential backoff
|
||||
* schedules just wait longer and longer. */
|
||||
int under_failure_limit = (dls->n_download_failures <= max_failures
|
||||
&& dls->n_download_attempts <= max_failures);
|
||||
return (under_failure_limit && dls->next_attempt_at <= now);
|
||||
if (!under_failure_limit)
|
||||
return 0;
|
||||
}
|
||||
return dls->next_attempt_at <= now;
|
||||
}
|
||||
|
||||
static void download_status_mark_impossible(download_status_t *dl);
|
||||
|
Loading…
Reference in New Issue
Block a user