Allow upload to a different origin on retryable errors #275
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is no retry in uploader so when client pushes to proxy and proxy uploads to origin, a failed call to origin could cause this chained push to fail, and registry's storage driver would return a non-informative 500 error:
Since the current origin is probably under high load due to hashing a big blob, retry on the same origin could make the load problem worse. This allow the cluster client to retry on a different origin if upload fails due to load error.