Skip to content
This repository has been archived by the owner on Aug 23, 2018. It is now read-only.

Evidence for retry in package managers #276

Open
evancz opened this issue Jun 29, 2017 · 3 comments
Open

Evidence for retry in package managers #276

evancz opened this issue Jun 29, 2017 · 3 comments

Comments

@evancz
Copy link
Contributor

evancz commented Jun 29, 2017

Thanks to @garbas for the following exploration, taken directly from #163 (comment). As a side note, new issues are always preferred to adding on to old things. Folks should just try to write something clear and concise, and I will do the meta analysis to connect the topics.


I'd like to cast my vote on having a retry policy in elm-package when downloading.

The following language specific package managers I checked have retry logic builtin:

  • pip
  • stack
  • yarn
  • bundle - has a --retry option
  • apt-get does not have to any retry logic, but aptitude has it.
  • rpm does not have retry logic but yum have it.

It looks quite common to retry when a connection error happens. And there might be many reasons why connection can fail, which has nothing to do with code and I see no better way but to retry.

@process-bot
Copy link

Thanks for the issue! Make sure it satisfies this checklist. My human colleagues will appreciate it!

Here is what to expect next, and if anyone wants to comment, keep these things in mind.

@garbas
Copy link

garbas commented Jun 29, 2017

@evancz thank you for moving this into a separate issue.

Now that I got preliminary 👍 from --retry functionality, I dig deeper on how (timeout, when to retry, how many retries, ...) retries are done in different package managers.

I'll start with pip since I'm most familiar with it

pip

Options with their defaults which control how packages get downloaded

  • retries [Default: 5] Maximum number of retries each connection should attempt.
  • there is a backoff_factor configured to 0.25. This means that first timeout is going to be 0.25s and next one 0.5s and next 1s.
  • a retry happens when the following status codes happen -> 413, 429, 503

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants