Comment 1 for bug 1820847

Revision history for this message
Tim Burke (1-tim-z) wrote :

I think I see how this could happen for swift3: When doing a ?encoding-type=url query, we used to quote() darn near everything [1] -- so the client would get back a response containing something like

 <NextContinuationToken>MjAwMGNvdW50L2ZpbGUuMTg5OQ%3D%3D</NextContinuationToken>

which the client dutifully encodes to

 ?continuation-token=MjAwMGNvdW50L2ZpbGUuMTg5OQ%253D%253D

so even when eventlet unquote()s the QUERY_STRING per spec, we get the escaped version.

Two bits of good news:
- If we stop quoting the NextContinuationToken, everything will Just Work; the equals-signs aren't themselves a problem.
- We've already done that in s3api [2] -- which explains why I haven't been able to repro the problem on tip-of-master swift.

What version of swift are you using? Can you upgrade to 2.20.0 or later and switch from swift3 to s3api?

[1] https://github.com/openstack/swift3/blob/master/swift3/etree.py#L85-L103
[2] https://github.com/openstack/swift/commit/c1c65a7