Created attachment 1161356 [details]
Description of problem:
Split a large file into segments and upload each segment. Create a manifest file for all the segments and upload it. A HEAD on the manifest file fails with "404 Not found" error
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Split a file of about 1.5G into 3 parts
2. Upload each segment into the same container:
curl -v -X PUT -H "X-Auth-Token:token" -T segmentName accountURL/containerName/objectName
3. Create a manifest file with the object attribute content in json format
4. Now upload the manifest file with the query parameter: ?multipart-manifest=put
curl -v -X PUT -H "X-Auth-Token:token" "accountURL/containerName/StaticLargeFileName?multipart-manifest=put" -T ./manifest.json
5. Do a list to check if the SLO file is uploaded
6. Do a HEAD on the SLO file
A HEAD or GET on the SLO object fails even though we can list the file in the container:
# swift -A http://rgw:8080/auth/1.0 -U testuser:swift -K 'm00APyUFWGcWE4fMxOn6pmaT9OqZcpTvCcTVbbCv' list slo-container
# curl -v -X HEAD -H "X-Auth-Token: Axxxxx" -L "http://rgw:8080/swift/v1/slo-container/big.txt"
> HEAD /swift/v1/slo-container/big.txt HTTP/1.1
> User-Agent: curl/7.29.0
> Host: rgw:8080
> Accept: */*
< HTTP/1.1 404 Not Found
< X-Trans-Id: tx00000000000000000001b-00574568b7-102e-default
< Content-Length: 9
< Accept-Ranges: bytes
< Content-Type: text/plain; charset=utf-8
< Date: Wed, 25 May 2016 08:56:23 GMT
Whereas a HEAD on the segments work.
We should be able to access the SLO object
2016-05-25 08:49:54.777202 7ff4897fa700 0 could not get bucket info for bucket=lo-container
2016-05-25 08:49:54.777212 7ff4897fa700 0 ERROR: failed to handle slo manifest ret=-2
2016-05-25 08:49:54.777291 7ff4897fa700 2 req 23:0.001865:swift:HEAD /swift/v1/slo-container/big.txt:get_obj:completing
2016-05-25 08:49:54.777300 7ff4897fa700 2 req 23:0.001874:swift:HEAD /swift/v1/slo-container/big.txt:get_obj:op status=-2
2016-05-25 08:49:54.777302 7ff4897fa700 2 req 23:0.001876:swift:HEAD /swift/v1/slo-container/big.txt:get_obj:http status=404
2016-05-25 08:49:54.777306 7ff4897fa700 1 ====== req done req=0x7ff4897f4710 op status=-2 http_status=404 ======
2016-05-25 08:49:54.777320 7ff4897fa700 20 process_request() returned -2
Procedure along with logs attached.
Can you create a ceph tracker bug and add info there?
Tested on 10.2.1-18. Works for me.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.