{"action":"created","issue":{"url":"https://api.github.com/repos/ansible/ansible-modules-core/issues/5267","repository_url":"https://api.github.com/repos/ansible/ansible-modules-core","labels_url":"https://api.github.com/repos/ansible/ansible-modules-core/issues/5267/labels{/name}","comments_url":"https://api.github.com/repos/ansible/ansible-modules-core/issues/5267/comments","events_url":"https://api.github.com/repos/ansible/ansible-modules-core/issues/5267/events","html_url":"https://github.com/ansible/ansible-modules-core/issues/5267","id":182985691,"number":5267,"title":"AWS modules should account for API throttling","user":{"login":"ralfbergs","id":7198745,"avatar_url":"https://avatars.githubusercontent.com/u/7198745?v=3","gravatar_id":"","url":"https://api.github.com/users/ralfbergs","html_url":"https://github.com/ralfbergs","followers_url":"https://api.github.com/users/ralfbergs/followers","following_url":"https://api.github.com/users/ralfbergs/following{/other_user}","gists_url":"https://api.github.com/users/ralfbergs/gists{/gist_id}","starred_url":"https://api.github.com/users/ralfbergs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ralfbergs/subscriptions","organizations_url":"https://api.github.com/users/ralfbergs/orgs","repos_url":"https://api.github.com/users/ralfbergs/repos","events_url":"https://api.github.com/users/ralfbergs/events{/privacy}","received_events_url":"https://api.github.com/users/ralfbergs/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ansible/ansible-modules-core/labels/affects_2.3","name":"affects_2.3","color":"5319e7"},{"url":"https://api.github.com/repos/ansible/ansible-modules-core/labels/aws","name":"aws","color":"c5def5"},{"url":"https://api.github.com/repos/ansible/ansible-modules-core/labels/cloud","name":"cloud","color":"c7def8"},{"url":"https://api.github.com/repos/ansible/ansible-modules-core/labels/needs_info","name":"needs_info","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-10-14T07:54:11Z","updated_at":"2016-10-14T09:26:32Z","closed_at":null,"body":" - Bug Report\r\n\r\n##### COMPONENT NAME\r\nec2_vpc\r\n(Applies to _any_ AWS module!)\r\n\r\n##### ANSIBLE VERSION\r\nAny Ansible version\r\n\r\n##### OS / ENVIRONMENT\r\nN/A\r\n\r\n##### SUMMARY\r\nIt seems that Ansible (or \"Boto\" at the bottom layer) doesn't account for Query API Request Rate throttling Amazon enforces.\r\n\r\nIf you do frequent AWS API calls (like I do at the moment, as I frequently create and destroy a very complex environment consisting of many components, because this environment is still in development) this throttling can kick in, give a negative reply to your Ansible task, and the Playbook aborts at that point.\r\n\r\nCountermeasures:\r\n\r\n- [API retries](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)\r\n- [Backoff background info](https://www.awsarchitectureblog.com/2015/03/backoff.html)\r\n- [Retry throttling](https://aws.amazon.com/blogs/developer/introducing-retry-throttling/)\r\n\r\n##### STEPS TO REPRODUCE\r\nRun a Playbook that does many API calls, like create a VPC, many subnets inside the VPC, Security Groups, ELBs, Internet Gateways, NAT Gateways, Route Tables, EC2 instances, etc. Then destroy them with your \"destroy\" Playbook. Re-run \"create\" Playbook. Destroy. Then you're likely to see this rate limiting.\r\n\r\n##### EXPECTED RESULTS\r\nAWS modules should not fail when the rate limiting is in effect, but should retry until the call succeeds.\r\n\r\n##### ACTUAL RESULTS\r\nAWS modules fail when the rate limiting is in effect. This manifests as follows:\r\n```\r\nfatal: [localhost]: FAILED! => {\"changed\": false, \"failed\": true, \"msg\": \"An error occurred (RequestLimitExceeded) when calling the DescribeAddresses operation: Request limit exceeded.\", \"success\": false}\r\n```"},"comment":{"url":"https://api.github.com/repos/ansible/ansible-modules-core/issues/comments/253751996","html_url":"https://github.com/ansible/ansible-modules-core/issues/5267#issuecomment-253751996","issue_url":"https://api.github.com/repos/ansible/ansible-modules-core/issues/5267","id":253751996,"user":{"login":"ansibot","id":6585283,"avatar_url":"https://avatars.githubusercontent.com/u/6585283?v=3","gravatar_id":"","url":"https://api.github.com/users/ansibot","html_url":"https://github.com/ansibot","followers_url":"https://api.github.com/users/ansibot/followers","following_url":"https://api.github.com/users/ansibot/following{/other_user}","gists_url":"https://api.github.com/users/ansibot/gists{/gist_id}","starred_url":"https://api.github.com/users/ansibot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansibot/subscriptions","organizations_url":"https://api.github.com/users/ansibot/orgs","repos_url":"https://api.github.com/users/ansibot/repos","events_url":"https://api.github.com/users/ansibot/events{/privacy}","received_events_url":"https://api.github.com/users/ansibot/received_events","type":"User","site_admin":false},"created_at":"2016-10-14T09:26:32Z","updated_at":"2016-10-14T09:26:32Z","body":"@ralfbergs, we need more information to resolve this issue. For that reason, we put this Issue into the 'needs_info' state.\n\nHere are the required items we could not find in your description:\n- issue type\n \nWhen you have filled in the missing data, we will notify the module maintainer for further action.\n[click here for bot help](https://github.com/ansible/ansibullbot/blob/master/ISSUE_HELP.md)\n<!--- boilerplate: issue_needs_info --->"}}
{"actor":{"display_login":"ansibot"}}