Comment 1 for bug 1758710

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

The container controller should always set the query param format=json [1], which will (should?) override any Accept headers -- and we see that in that first line from your proxy-server log:

  /v1/AUTH_42859d61583d48b7aead939fb39cb898/test?prefix=SW_DVD9_Win_Svr_STD_Core_and_DataCtr_Core_2016_64Bit_Russian_-3_MLF_X21-30363.ISO.part&format=json

Is the client sending any Accept headers of its own? What's your proxy-server pipeline look like? In particular, I wonder whether staticweb is enabled, and if so, whether there might be an ordering problem between dlo and staticweb.

What response do you get if you do a GET directly to the container server? You can get the nodes you'll want to check with something like

  swift-get-nodes /etc/swift/container.ring.gz AUTH_42859d61583d48b7aead939fb39cb898/test

On my dev box, the output includes something like

  curl -g -I -XHEAD "http://127.0.0.1:6041/sdb4/14/AUTH_42859d61583d48b7aead939fb39cb898/test"

You'll want to take the URL and add the query params from your request log and any Accept header from your client to make a command line like

  curl -i http://127.0.0.1:6041/sdb4/14/AUTH_42859d61583d48b7aead939fb39cb898/test?prefix=SW_DVD9_Win_Svr_STD_Core_and_DataCtr_Core_2016_64Bit_Russian_-3_MLF_X21-30363.ISO.part&format=json -H "Accept: text/plain"

Does *that* respond with JSON, or something else?

[1] https://github.com/openstack/swift/blob/2.17.0/swift/proxy/controllers/container.py#L102-L104