Loading changes/bug20536 0 → 100644 +6 −0 Original line number Diff line number Diff line 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. src/or/directory.h +9 −3 Original line number Diff line number Diff line Loading @@ -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 Loading
changes/bug20536 0 → 100644 +6 −0 Original line number Diff line number Diff line 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.
src/or/directory.h +9 −3 Original line number Diff line number Diff line Loading @@ -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