On Mon Sep 27 2021 21:30:54 GMT-0700 (Pacific Daylight Time), Ghanshyam Mann <gmann@ghanshyammann.com> wrote:
Yeah. To find out who is corrupting the PATH_INFO and SCRIPT_NAME, I tried to trace the environ (could not finish it) in webob layer and while building the Request in webob, environ variables are already corrupted.
'PATH_INFO': '//resource_providers' 'REQUEST_URI': '/placement/resource_providers?in_tree=baba07a8-3c17-474c-82e6-5d63308a1f9d', 'SCRIPT_NAME': '/placemen',
Below log is from webob.des.py->__call__method - https://paste.opendev.org/show/809639/
There is no change in webob recently and as it is only failing in placement (nova, keystone request works fine) so webob or wsgi is less doubtful and it might be only in placement server-side in our Request/Response objects ?
I looked at this some more and I think I found where the environ gets populated in wsgiref.simple_server [1][2][3][4] in the case of devstack. (pbr generates the WSGI run script which ends up at /usr/local/bin/placement-api in a devstack env and this script uses wsgiref.simple_server as the WSGI server). I can't tell whether there is anything that could now be wrong in [3] or [4] given the recent apache upgrade in focal that Ian found is connected to the change in behavior (thank you Ian!). Maybe someone else can spot something. -melanie [1] https://github.com/openstack/placement/blob/bd5b19c00e1ab293fc157f4699bc4f47... [2] https://github.com/openstack/pbr/blob/2297988a7f41b8cb9d03aaea7d5ad9ba4378e5... [3] https://github.com/openstack/pbr/blob/2297988a7f41b8cb9d03aaea7d5ad9ba4378e5... [4] https://github.com/python/cpython/blob/3.8/Lib/wsgiref/simple_server.py#L85