botocore icon indicating copy to clipboard operation
botocore copied to clipboard

Configurable exponential timeout

Open MadalinaPatrichi opened this issue 8 years ago • 6 comments

I am trying to use boto for a various set of operations for which I would like to have the same logic in terms of retry attempts. After looking through the documentations, with the exception of being able to set a maximum number of linear retries for downloading data, it does not seem that this logic is exposed at all to the user. Is your documentation out of date, or is there a reason why this is not exposed?

MadalinaPatrichi avatar May 22 '17 13:05 MadalinaPatrichi

There are a number of places where botocore internally has retry capabilities for but you're correct that we don't expose it to end users. I'm going to go ahead and flag this as a feature request. Thanks!

dstufft avatar May 23 '17 16:05 dstufft

This is also functionality I am currently looking for. Specifically being able to lower the retry count on failed s3 upload requests. The default of 5 retries in _retry.json takes ~9s to throw a ClientError which is a fairly long time to wait.

eric-weaver avatar Jul 07 '17 15:07 eric-weaver

#1260 implemented configurable max_attempts for retries. As far as I can tell, overriding the growth_factor on the delay_config should be a very similar change.

jantman avatar Sep 13 '17 21:09 jantman

@jantman https://github.com/boto/botocore/pull/891#issuecomment-321910539

taraslayshchuk avatar Feb 06 '18 10:02 taraslayshchuk

:( ok

jantman avatar Feb 06 '18 10:02 jantman

Any further thoughts to allowing a base_delay to be configurable, as part of the config users can make on the client, subsequently passed on through to the retry handlers, e.g. standard exponential backoff delay_amount function? I believe IAM endpoints quota replenish operates on discreet 1 second windows. Having retries within the current 1 second boundary only adds to the problem, for the iam client boto3.

declanwilson-lw avatar Nov 03 '21 13:11 declanwilson-lw