Closed lawrenceong closed 6 years ago
Related: #403
@lawrenceong do you think we should be making this change in the excon package?
@WyseNynja I would say that the implementation should either be done in fog's aws module or in the vagrant-aws plugin itself. excon is a connection library that is unrelated to aws.
Pull request open for the fog-aws gem: fog/fog-aws#361
The vagrant-aws module (0.7.2) does not currently implement exponential backoff. This means there is a chance that we would have builds fail as a result of a RequestLimitExceeded error.
vagrant-aws module 0.7.2 uses fog 1.22 that uses the latest excon (0.51.0 as of this writing)
fog uses the excon module to talk to aws. It sets the idempotent flag when calling excon, that signifies that it should retry on error. With idempotent set, the excon module will retry 3 times when an error is encountered. It does not distinguish between the errors. The retry happens consecutively without any wait in between, then fail with the latest error (usually RequestLimitExceeded when build fails)
Sample stack trace from a build failure:
About the RequestLimitExceeded error: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-api-troubleshooting.html