RGW does not send Content-Length HTTP header in response for GET on Swift account/container when the FCGI frontend is used
The Content-Length header is mandatory according to OpenStack Object Storage API v1: http://docs.openstack.org/api/openstack-object-storage/1.0/content/GET_showContainerDetails__v1__account___container__storage_container_services.html.
The problem is absent while using the civetweb front-end due to extra level of buffering which allows to properly calculate and append the header when a given RGWOp does not generate it. Please take a look on RGWMongoose::write_data(), RGWMongoose::complete_header() and RGWMongoose::complete_request() methods
1. RGW via civetweb: curl -i http://localhost:8000/swift/v1/cont -X GET -H "X-Auth-Token: $token"
HTTP/1.1 200 OK Content-type: text/plain; charset=utf-8 Content-Length: 5 file
2. RGW via nginx: curl -i http://localhost:8080/swift/v1/cont -X GET -H "X-Auth-Token: $token"
HTTP/1.1 200 OK Server: nginx/1.4.6 (Ubuntu) Date: Fri, 27 Feb 2015 12:55:53 GMT Content-Type: text/plain; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive file