I couldn't find an invocation of swiftclient.client.Connection.get_object that would produce a result like that (using latest swiftclient and swift with name_check forbidden_chars = " " sort of configurations - hardly an exhaustive search). I find the error message curious tho? I agree if somehow the server managed to receive a request line like 'GET /v1/auth/container/a b x? HTTP/1.1' it very much should respond bad syntax [1]!
And I can reproduce that [2] - but not with swiftclient.client.Connection.get_object who very much wants to quote the path? I'm not even sure *requests* would let you get an unquoted path on the wire? I wonder if tcpdump could prove the client *is* sending the quoted url - the ClientException sure makes it look like it quoted!?
So what split brain'd madness is allowing that path to get to the python http server unquoted? Who is adding the bare query string param? Is this a bug between the client and the wire or a malevolent proxy between the wire and our eventlet.wsgi.server?
Interesting...
I couldn't find an invocation of swiftclient. client. Connection. get_object that would produce a result like that (using latest swiftclient and swift with name_check forbidden_chars = " " sort of configurations - hardly an exhaustive search). I find the error message curious tho? I agree if somehow the server managed to receive a request line like 'GET /v1/auth/ container/ a b x? HTTP/1.1' it very much should respond bad syntax [1]!
And I can reproduce that [2] - but not with swiftclient. client. Connection. get_object who very much wants to quote the path? I'm not even sure *requests* would let you get an unquoted path on the wire? I wonder if tcpdump could prove the client *is* sending the quoted url - the ClientException sure makes it look like it quoted!?
So what split brain'd madness is allowing that path to get to the python http server unquoted? Who is adding the bare query string param? Is this a bug between the client and the wire or a malevolent proxy between the wire and our eventlet. wsgi.server?
1. https:/ /github. com/python/ cpython/ blob/6c6186da42 bf0080f273b439f 06d2135f94a16d5 /Lib/BaseHTTPSe rver.py# L286 /gist.github. com/clayg/ 2ae111dcc8aec45 9a6b3838853ddc4 3f
2. https:/