running parallel bootstraps in aws gives request limit exceeded
Bug #1888409 reported by
Adam Stokes
This bug affects 7 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
High
|
Ben Hoyt |
Bug Description
In our CI we have been running multiple juju bootstraps/deploys in parallel on AWS, usually in batches of 10 at a time. Prior to Juju 2.8.1 this has been working fine, once we upgraded to 2.8.1 we are now getting several AWS limiting errors such as:
ERROR Request limit exceeded. (RequestLimitEx
And during deploys
ERROR cannot deploy bundle: cannot deploy application "kubernetes-
My questions are,
a) Did something change between releases that would cause these limit errors to now be surfaced?
b) Does juju do any sort of automatic retry/recovery when it runs into these errors?
description: | updated |
Changed in juju: | |
milestone: | 2.8.3 → 2.8.2 |
Changed in juju: | |
status: | In Progress → Fix Committed |
Changed in juju: | |
status: | Fix Committed → New |
Changed in juju: | |
milestone: | 2.8.2 → 2.8.3 |
status: | New → Fix Committed |
Changed in juju: | |
assignee: | Ian Booth (wallyworld) → Ben Hoyt (benhoyt) |
summary: |
- running parallel bootstraps in aws gives request limit execeeded + running parallel bootstraps in aws gives request limit exceeded |
Changed in juju: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
A recent change is that Juju now queries the AWS API to ask about available instance types and costs information rather than rely on hard coded data derived from a downloaded json file and baked into the juju binary.
The instance type info is cached so that it is only queried once by the controller per model (but it could also be queries in the juju client to validate constraints).
It's possible this is causing the rate limit exceeded issues. Juju doesn't explicitly handle the retries - it relies on the underlying cloud api library to do it under the covers, which is the case for Openstack for example (it's specific to each library how to interpret and react to such rate limiting requests). We'd need to look at what needs to be done to support retry/backoff for AWS.