diff mbox

RadosGW crashing on copy for one specific object

Message ID CABBk=J8G=fWC5_m0qxAaYAH0UioYA++87S84J9+23B2BxNs39g@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yehuda Sadeh Aug. 20, 2014, 5:25 p.m. UTC
On Wed, Aug 20, 2014 at 6:47 AM, Sylvain Munaut
<s.munaut@whatever-company.com> 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:



Thanks,
Yehuda
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Yehuda Sadeh Aug. 20, 2014, 5:33 p.m. UTC | #1
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 <yehuda@redhat.com> wrote:
> On Wed, Aug 20, 2014 at 6:47 AM, Sylvain Munaut
> <s.munaut@whatever-company.com> 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 majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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