Bug 1623666

Summary: mod_wsgi forces HEAD to GET [rhel-7.5.z]
Product: Red Hat Enterprise Linux 7 Reporter: Jaroslav Reznik <jreznik>
Component: mod_wsgiAssignee: Luboš Uhliarik <luhliari>
Status: CLOSED ERRATA QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: urgent Docs Contact:
Priority: high    
Version: 7.4CC: afazekas, bnater, dmasirka, igkioka, jhouska, jkejda, jorton, jreznik, knoha, luhliari, mburns, salmy, yprokule
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: mod_wsgi-3.4-13.el7_5.1 Doc Type: Bug Fix
Doc Text:
Previously, the mod_wsgi adapter was mapping any HEAD request to a GET request. As a consequence, applications served different content for the HEAD and GET requests. This update adds the WSGIMapHEADToGET directive to fix the unexpected behavior of applications. Note that the directive can be set to "Auto" (default), "On" to always map a HEAD to GET request even if no output filters are detected, or "Off" to always preserve the original request method type. As a result, users can set WSGIMapHEADToGET accordingly, and the described problem no longer occurs.
Story Points: ---
Clone Of: 1466799 Environment:
Last Closed: 2018-09-25 19:10:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1466799    
Bug Blocks:    

Description Jaroslav Reznik 2018-08-29 20:38:16 UTC
This bug has been copied from bug #1466799 and has been proposed to be backported to 7.5 z-stream (EUS).

Comment 4 Jan Houska 2018-09-17 13:08:59 UTC
VERIFIED

NEW Pass:
rpm -q mod_wsgi httpd
mod_wsgi-3.4-13.el7_5.1.x86_64
httpd-2.4.6-80.el7_5.1.x86_64


======
Totals
======
Ran: 133 tests in 58.0000 sec.
 - Passed: 113
 - Skipped: 20
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 149.3751 sec.

==============
Worker Balance
==============
 - Worker 0 (9 tests) => 0:00:40.686837
 - Worker 1 (6 tests) => 0:00:29.656724
 - Worker 2 (25 tests) => 0:00:48.643591
 - Worker 3 (22 tests) => 0:00:51.720300
 - Worker 4 (18 tests) => 0:00:47.366785
 - Worker 5 (16 tests) => 0:00:48.013658
 - Worker 6 (18 tests) => 0:00:55.639562
 - Worker 7 (19 tests) => 0:00:55.488702



OLD FAIL:
# rpm -q mod_wsgi httpd
mod_wsgi-3.4-12.el7_0.x86_64
httpd-2.4.6-80.el7_5.1.x86_64



==============================
Failed 1 tests - output below:
==============================

tempest.api.identity.admin.v3.test_roles.RolesV3TestJSON.test_implied_roles_create_check_show_delete[id-c90c316c-d706-4728-bcba-eb1912081b69]
---------------------------------------------------------------------------------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "/usr/lib/python2.7/site-packages/tempest/api/identity/admin/v3/test_roles.py", line 208, in test_implied_roles_create_check_show_delete
        prior_role_id, implies_role_id)
      File "/usr/lib/python2.7/site-packages/tempest/lib/services/identity/v3/roles_client.py", line 233, in check_role_inference_rule
        self.expected_success(204, resp.status)
      File "/usr/lib/python2.7/site-packages/tempest/lib/common/rest_client.py", line 261, in expected_success
        raise exceptions.InvalidHttpSuccessCode(details)
    tempest.lib.exceptions.InvalidHttpSuccessCode: The success code is different than the expected one
    Details: Unexpected http success status code 200, The expected status code is 204
    

Captured pythonlogging:
~~~~~~~~~~~~~~~~~~~~~~~
    2018-09-17 08:28:18,062 19682 INFO     [tempest.lib.common.rest_client] Request (RolesV3TestJSON:test_implied_roles_create_check_show_delete): 201 PUT http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2 0.245s
    2018-09-17 08:28:18,062 19682 DEBUG    [tempest.lib.common.rest_client] Request - Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<omitted>'}
            Body: None
        Response - Headers: {'status': '201', u'content-length': '510', 'content-location': 'http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2', u'vary': 'X-Auth-Token', u'server': 'Apache/2.4.6 (Red Hat Enterprise Linux)', u'connection': 'close', u'date': 'Mon, 17 Sep 2018 12:28:17 GMT', u'content-type': 'application/json', u'x-openstack-request-id': 'req-2cad222c-125f-4f52-9aba-8805c375569a'}
            Body: {"role_inference": {"implies": {"id": "526a7c5b50414441894b03a1dee12ab2", "links": {"self": "http://172.16.1.16:35357/v3/roles/526a7c5b50414441894b03a1dee12ab2"}, "name": "tempest-role-1842203639"}, "prior_role": {"id": "602b060ef5734ab3a5da5909c587bd40", "links": {"self": "http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40"}, "name": "tempest-role-932156205"}}, "links": {"self": "http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2"}}
    2018-09-17 08:28:18,234 19682 INFO     [tempest.lib.common.rest_client] Request (RolesV3TestJSON:test_implied_roles_create_check_show_delete): 200 HEAD http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2 0.171s
    2018-09-17 08:28:18,234 19682 DEBUG    [tempest.lib.common.rest_client] Request - Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<omitted>'}
            Body: None
        Response - Headers: {'status': '200', u'content-length': '510', 'content-location': 'http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2', u'vary': 'X-Auth-Token,Accept-Encoding', u'server': 'Apache/2.4.6 (Red Hat Enterprise Linux)', u'connection': 'close', u'date': 'Mon, 17 Sep 2018 12:28:18 GMT', u'content-type': 'application/json', u'x-openstack-request-id': 'req-2127f068-da1b-4338-9718-4b240d707d9f'}
            Body: 
    2018-09-17 08:28:18,359 19682 INFO     [tempest.lib.common.rest_client] Request (RolesV3TestJSON:_run_cleanups): 204 DELETE http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2 0.122s
    2018-09-17 08:28:18,360 19682 DEBUG    [tempest.lib.common.rest_client] Request - Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<omitted>'}
            Body: None
        Response - Headers: {'status': '204', 'content-location': 'http://172.16.1.16:35357/v3/roles/602b060ef5734ab3a5da5909c587bd40/implies/526a7c5b50414441894b03a1dee12ab2', u'vary': 'X-Auth-Token', u'server': 'Apache/2.4.6 (Red Hat Enterprise Linux)', u'connection': 'close', u'date': 'Mon, 17 Sep 2018 12:28:18 GMT', u'content-type': 'text/plain', u'x-openstack-request-id': 'req-25d326f1-6d05-4825-8538-4c887bcdad2b'}
            Body: 
    


======
Totals
======
Ran: 133 tests in 66.0000 sec.
 - Passed: 112
 - Skipped: 20
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 1
Sum of execute time for each test: 132.2891 sec.

==============
Worker Balance
==============
 - Worker 0 (14 tests) => 0:00:27.373990
 - Worker 1 (18 tests) => 0:00:48.017945
 - Worker 2 (15 tests) => 0:00:52.080218
 - Worker 3 (23 tests) => 0:00:42.970306
 - Worker 4 (14 tests) => 0:00:32.820782
 - Worker 5 (23 tests) => 0:00:46.173268
 - Worker 6 (7 tests) => 0:00:15.452664
 - Worker 7 (19 tests) => 0:00:57.229527

Slowest Tests:

Comment 6 errata-xmlrpc 2018-09-25 19:10:59 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://access.redhat.com/errata/RHBA-2018:2767