Bug 1339525 - A query on a static large object fails with 404 error
Summary: A query on a static large object fails with 404 error
Alias: None
Product: Red Hat Ceph Storage
Classification: Red Hat
Component: RGW
Version: 2.0
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: 2.0
Assignee: Matt Benjamin (redhat)
QA Contact: shilpa
Depends On:
TreeView+ depends on / blocked
Reported: 2016-05-25 09:04 UTC by shilpa
Modified: 2017-07-30 15:45 UTC (History)
9 users (show)

Fixed In Version: RHEL: ceph-10.2.1-10.el7cp Ubuntu: ceph_10.2.1-8redhat1xenial
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2016-08-23 19:39:30 UTC
Target Upstream Version:

Attachments (Terms of Use)
Log file (1.78 MB, text/plain)
2016-05-25 09:04 UTC, shilpa
no flags Details

System ID Private Priority Status Summary Last Updated
Ceph Project Bug Tracker 16015 0 None None None 2016-05-25 09:41:43 UTC
Red Hat Product Errata RHBA-2016:1755 0 normal SHIPPED_LIVE Red Hat Ceph Storage 2.0 bug fix and enhancement update 2016-08-23 23:23:52 UTC

Description shilpa 2016-05-25 09:04:40 UTC
Created attachment 1161356 [details]
Log file

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):

How reproducible:

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

Actual results:
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: */*
> X-Auth-Token:
< 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.  

Expected results:
We should be able to access the SLO object

Additional info:

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.

Comment 3 Yehuda Sadeh 2016-05-25 09:16:23 UTC
Can you create a ceph tracker bug and add info there?

Comment 12 shilpa 2016-06-15 12:08:35 UTC
Tested on 10.2.1-18. Works for me.

Comment 14 errata-xmlrpc 2016-08-23 19:39:30 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.