SLO missing in pipeline because pipeline is confusing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Content Length of manifest file for large object is not equal to sum of content length of segments, instead its content length of manifest file.
Request
"PUT http://
# swift stat arc19 testt
Account: AUTH_f9d7c1cf65
Container: arc19
Object: testt
Content Type: application/
Content Length: 303
Last Modified: Wed, 05 Apr 2017 11:37:36 GMT
ETag: 6bb12a356d8bad7
Meta Mtime: 1491391761.014202
Accept-Ranges: bytes
Connection: keep-alive
X-Timestamp: 1491392255.22155
X-Trans-Id: txed26f76336ad4
X-Static-
[root@jupiter-vm564 ~]# swift list arc19_segments
testt/slo/
testt/slo/
Size of test5 file is 35MB
Content length of segments are 32MB and 3 MB
Content length of manifest id 303 bytes. 303 bytes is the length of manifest file. This is expected to be 35MB
What version of both swift and python-swiftclient are you using? What is the body returned if you download testt - is it still the 35MB you expected to get? Can you reproduce this content-length error when using a curl GET or HEAD command to swift directly?
I am not able to reproduce this against the latest swift code (master). I tried using curl commands to swift directly, and using the latest python-swiftclient.
When I make a GET or HEAD request with the manifest path URL and the '?multipart- manifest= get' parameter, I correctly get the manifest body and the content-length of the manifest because of that parameter being sent with the request. And when I perform a GET or HEAD request without the parameter, I correctly get the body of the large object and the content-length of the large object returned.