Bug 1368365

Summary: Properly handle http 429 error code
Product: Red Hat Enterprise Linux 7 Reporter: Marcel Kolaja <mkolaja>
Component: virt-whoAssignee: Chris Snyder <csnyder>
Status: CLOSED ERRATA QA Contact: Eko <hsun>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.2CC: ajanorka, carceneaux, hsun, jherrman, ovasik
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-who-0.14-9.el7_2.2 Doc Type: Bug Fix
Doc Text:
Prior to this update, virt-who could not handle error code 429 (Too Many Requests) and stopped its operation when the error occurred. With this update, virt-who delays further communication with the Red Hat Subscription Manager when it receives error 429, but resumes the operation afterwards.
Story Points: ---
Clone Of: 1286945 Environment:
Last Closed: 2016-12-20 17:27:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 1286945    
Bug Blocks:    

Description Marcel Kolaja 2016-08-19 08:03:34 UTC
This bug has been copied from bug #1286945 and has been proposed
to be backported to 7.2 z-stream (EUS).

Comment 3 Radek Novacek 2016-08-23 11:55:40 UTC
Devel ack is granted.

Comment 4 Radek Novacek 2016-09-01 11:26:14 UTC
Fixed in virt-who-0.14-9.el7_2.2.

Comment 6 Eko 2016-09-08 09:13:13 UTC
verified in virt-who-0.14-9.el7_2.2.noarch,

if 429 received, virt-who will become waiting until sending again as following log:

# virt-who -c rhevm.conf  -d -o
2016-09-08 04:56:59,959 INFO: Using configuration "test-rhevm" ("rhevm" mode)
2016-09-08 04:57:00,519 DEBUG: Authenticating with certificate: /etc/pki/consumer/cert.pem
2016-09-08 04:57:01,940 DEBUG: Checking if server has capability 'hypervisor_async'
2016-09-08 04:57:02,533 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:03,136 DEBUG: Server does not have 'hypervisors_async' capability
2016-09-08 04:57:03,136 INFO: Sending update in hosts-to-guests mapping: 1 hypervisors and 36 guests found
2016-09-08 04:57:03,136 DEBUG: Host-to-guest mapping: {
    "c9580394-546d-47c2-8e0d-91777ac8ba38": [
        {
            "guestId": "fb58a249-4b37-4ece-a958-043bdbff222e", 
            "state": 1, 
            "attributes": {
                "active": 1, 
                "virtWhoType": "rhevm", 
                "hypervisorType": "qemu"
            }
        }
    ]
}
2016-09-08 04:57:04,543 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:04,556 DEBUG: 429 received, waiting 60 seconds until sending again
2016-09-08 04:57:09,590 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:10,596 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:29,234 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:30,625 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:32,875 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:38,339 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:57:39,805 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:58:04,610 DEBUG: Authenticating with certificate: /etc/pki/consumer/cert.pem
2016-09-08 04:58:05,822 DEBUG: Checking if server has capability 'hypervisor_async'
2016-09-08 04:58:07,245 DEBUG: Server does not have 'hypervisors_async' capability
2016-09-08 04:58:07,245 INFO: Sending update in hosts-to-guests mapping: 1 hypervisors and 36 guests found
2016-09-08 04:58:07,245 DEBUG: Host-to-guest mapping: {
    "c9580394-546d-47c2-8e0d-91777ac8ba38": [
        {
            "guestId": "fb58a249-4b37-4ece-a958-043bdbff222e", 
            "state": 1, 
            "attributes": {
                "active": 1, 
                "virtWhoType": "rhevm", 
                "hypervisorType": "qemu"
            }
        }
    ]
}
2016-09-08 04:58:08,169 DEBUG: 429 received, waiting 120 seconds until sending again
2016-09-08 04:58:49,097 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:58:50,168 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:58:55,257 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:58:58,412 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:03,400 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:05,417 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:10,289 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:13,357 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:18,250 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:20,104 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 04:59:25,392 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:08,254 DEBUG: Authenticating with certificate: /etc/pki/consumer/cert.pem
2016-09-08 05:00:09,847 DEBUG: Checking if server has capability 'hypervisor_async'
2016-09-08 05:00:11,267 DEBUG: Server does not have 'hypervisors_async' capability
2016-09-08 05:00:11,267 INFO: Sending update in hosts-to-guests mapping: 1 hypervisors and 36 guests found
2016-09-08 05:00:11,268 DEBUG: Host-to-guest mapping: {
    "c9580394-546d-47c2-8e0d-91777ac8ba38": [
        {
            "guestId": "fb58a249-4b37-4ece-a958-043bdbff222e", 
            "state": 1, 
            "attributes": {
                "active": 1, 
                "virtWhoType": "rhevm", 
                "hypervisorType": "qemu"
            }
        }
    ]
}
2016-09-08 05:00:12,422 DEBUG: 429 received, waiting 180 seconds until sending again
2016-09-08 05:00:29,290 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:30,609 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:33,412 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:38,269 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:40,672 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:45,387 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:48,373 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:53,221 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:00:55,366 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:01:00,363 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:01:03,550 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:10,649 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:13,409 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:18,388 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:20,744 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:28,707 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:33,714 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:35,778 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:02:43,411 DEBUG: Getting the host/guests association took too long, interval waiting is skipped
2016-09-08 05:03:12,436 DEBUG: Authenticating with certificate: /etc/pki/consumer/cert.pem
2016-09-08 05:03:13,943 DEBUG: Checking if server has capability 'hypervisor_async'
2016-09-08 05:03:15,383 DEBUG: Server does not have 'hypervisors_async' capability
2016-09-08 05:03:15,383 INFO: Sending update in hosts-to-guests mapping: 1 hypervisors and 36 guests found
2016-09-08 05:03:15,383 DEBUG: Host-to-guest mapping: {
    "c9580394-546d-47c2-8e0d-91777ac8ba38": [
        {
            "guestId": "fb58a249-4b37-4ece-a958-043bdbff222e", 
            "state": 1, 
            "attributes": {
                "active": 1, 
                "virtWhoType": "rhevm", 
                "hypervisorType": "qemu"
            }
        }
    ]
}
2016-09-08 05:03:16,818 DEBUG: Association for config test-rhevm gathered
2016-09-08 05:03:16,824 DEBUG: virt-who shut down started

Comment 9 errata-xmlrpc 2016-12-20 17:27:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2964.html