If by any chance you applied the previous patch, revert it, as it's
wrong. This might fix the issue:
diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h
index d50fb59..0f13590 100644
--- a/src/rgw/rgw_rados.h
+++ b/src/rgw/rgw_rados.h
@@ -298,6 +298,9 @@ public:
bool has_tail() {
if (explicit_objs) {
+ if (objs.size() == 1) {
+ return head_obj != objs[0];
+ }
return (objs.size() >= 2);
}
return (obj_size > head_size);
Let me know if it works for you.
Thanks,
Yehuda
On Wed, Aug 20, 2014 at 10:33 AM, Yehuda Sadeh <[email protected]> wrote:
> Looking at the code some more, that change isn't going to fix it for
> you. I'll send an updated fix soon.
>
> Yehuda
>
> On Wed, Aug 20, 2014 at 10:25 AM, Yehuda Sadeh <[email protected]> wrote:
>> On Wed, Aug 20, 2014 at 6:47 AM, Sylvain Munaut
>> <[email protected]> wrote:
>>> Hi,
>>>
>>>
>>>> What does 'radosgw-admin object stat --bucket=<bucket> --object=<object>'
>>>> show?
>>>
>>> { "name":
>>> "5ae1b8cb8a2bdc3c2d7e1868b60d76abea2536f4604d6d312df95b719470fb3b\/render-image",
>>> "size": 239879,
>>> "policy": { "acl": { "acl_user_map": [
>>> { "user": "kp",
>>> "acl": 15}],
>>> "acl_group_map": [],
>>> "grant_map": [
>>> { "id": "kp",
>>> "grant": { "type": { "type": 0},
>>> "id": "kp",
>>> "email": "",
>>> "permission": { "flags": 15},
>>> "name": "KP S3 User",
>>> "group": 0}}]},
>>> "owner": { "id": "kp",
>>> "display_name": "KP S3 User"}},
>>> "etag": "bfe2df862d92f70cecbedbab324e3f78-1",
>>> "tag": "default.440489.1590546",
>>> "manifest": { "objs": [
>>> 0,
>>> { "loc": { "bucket": { "name": "kp-render-image.bouygues",
>>> "pool": ".rgw.kp-render-image",
>>> "data_extra_pool": "",
>>> "index_pool": ".rgw.kp-render-image",
>>> "marker": "default.440489.58258",
>>> "bucket_id": "default.440489.58258"},
>>> "key": "",
>>> "ns": "multipart",
>>> "object":
>>> "_multipart_5ae1b8cb8a2bdc3c2d7e1868b60d76abea2536f4604d6d312df95b719470fb3b\/render-image.8rSDD8MVD1KIXDTQDsf3g6b71dqADP_.1"},
>>> "loc_ofs": 0,
>>> "size": 239879}],
>>> "obj_size": 239879,
>>> "explicit_objs": "true",
>>> "head_obj": { "bucket": { "name": "",
>>> "pool": "",
>>> "data_extra_pool": "",
>>> "index_pool": "",
>>> "marker": "",
>>> "bucket_id": ""},
>>> "key": "",
>>> "ns": "",
>>> "object": ""},
>>> "head_size": 0,
>>> "max_head_size": 0,
>>> "prefix": "",
>>> "tail_bucket": { "name": "",
>>> "pool": "",
>>> "data_extra_pool": "",
>>> "index_pool": "",
>>> "marker": "",
>>> "bucket_id": ""},
>>> "rules": []},
>>> "attrs": { "user.rgw.content_type": "image\/png"}}
>>>
>>>
>>>> Also, can you bump logging up? debug rgw = 20, debug ms = 1
>>>
>>> I'll try, but being on the production cluster, it's constantly
>>> hammered with requests :p
>>>
>>>
>>
>> The object has a zero sized head, which is ok, but I think it triggers
>> an issue. Can you try this:
>>
>> diff --git a/src/rgw/rgw_dencoder.cc b/src/rgw/rgw_dencoder.cc
>> index e6dc2ba..fd12c4f 100644
>> --- a/src/rgw/rgw_dencoder.cc
>> +++ b/src/rgw/rgw_dencoder.cc
>> @@ -104,7 +104,7 @@ void RGWObjManifest::obj_iterator::update_location()
>>
>> const rgw_obj& head = manifest->get_head();
>>
>> - if (ofs < manifest->get_head_size()) {
>> + if (ofs <= manifest->get_head_size()) {
>> location = head;
>> return;
>> }
>> diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc
>> index 7ca4a9d..877c130 100644
>> --- a/src/rgw/rgw_rados.cc
>> +++ b/src/rgw/rgw_rados.cc
>> @@ -558,7 +558,7 @@ void RGWObjManifest::obj_iterator::operator++()
>> }
>>
>> /* are we still pointing at the head? */
>> - if (ofs < head_size) {
>> + if (ofs <= head_size) {
>> rule_iter = manifest->rules.begin();
>> RGWObjManifestRule *rule = &rule_iter->second;
>> ofs = MIN(head_size, obj_size);
>>
>>
>> Thanks,
>> Yehuda
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html