-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retries are not limited #18
Comments
I just pushed #19 - it contains a test function, |
Hi. I just started looking into it, wanted to clarify few things before I start making any changes in the code.
What would be the desired default value here?
I don't understand why concurrently is an issue here. If we have e.g. Thank you for clarification. Best regards, |
Hi @mlech-reef -
Looking at the B2 SDK for Python, upload/download operations are retried 20 times, while other operations are retried 5 times.
My recollection is that, when an upload failed after 3 retries, I was trying to cancel all the other 'in-flight' uploads, to 'fail fast'. I was probably making it too complicated! |
Currently, if a B2 API returns a HTTP error status code that indicates a transient error, such as
429
or503
, there is no limit to the number of retries that will be attempted. The app calling the API will hang until the operation returns a non-transient status such as200
or404
.The issue is in the
withBackoff()
function:Notice that the
for
loop has no terminating condition. There needs to be a configurable maximum number of retries so that operations can fail if the service is unavailable.Note: I have looked at fixing this in the past. At the 'micro' level, it is straightforward to make this function do the right thing. The issues seem to arise in the
Writer
with multipart uploads, where multiple parts can be in flight concurrently.The text was updated successfully, but these errors were encountered: