From patchwork Wed Aug 20 17:44:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yehuda Sadeh X-Patchwork-Id: 4753051 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 8E39CC0338 for ; Wed, 20 Aug 2014 17:44:16 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 812DB2012F for ; Wed, 20 Aug 2014 17:44:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1939A20160 for ; Wed, 20 Aug 2014 17:44:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752287AbaHTRoL (ORCPT ); Wed, 20 Aug 2014 13:44:11 -0400 Received: from mail-ig0-f179.google.com ([209.85.213.179]:53586 "EHLO mail-ig0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752166AbaHTRoK (ORCPT ); Wed, 20 Aug 2014 13:44:10 -0400 Received: by mail-ig0-f179.google.com with SMTP id h18so11606199igc.0 for ; Wed, 20 Aug 2014 10:44:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ws876GmDA/hIoIQlNvrH1G7tV/k83BJXJL2It4AbeVY=; b=WMMTwDS0t/RxlL+pIDqWHSjKdKA5yxfCAD4hfzUpKqznUC/7g4s8cSrtl7YI18T2xe RcChOyryI9zuWFYxMmw+RRdOChqaTJUTfv0tSgdCLcb+y6VX111bRkLLZp2F6Nm/5TuL +C9IiXjNNUEmgwDlHWILt2JSCt6H3Iu5G3/8S3MnV0IMBvXWUULjixBIi4KLr6hp50S1 2Qkqz5Z1+TFYJzPXK1cGHQWS2UcnhCRfQ+6vrIyawK4ILDL73Du4qbG7M2/RMXzpETjB Z+qGCjhp7O/ReKB17c32Sp85l0M5H9X+ZxGDlcRPChsvWpjlyzezT+LCLArVdG74wr0B K/9w== X-Gm-Message-State: ALoCoQnbWUZ3PnoLicioeEJVtPvEgxSti+kXPcpbizg8rhS7S7rh+TF9yf9+C/I1GH6oYFPODrjH MIME-Version: 1.0 X-Received: by 10.50.80.76 with SMTP id p12mr14538047igx.34.1408556648901; Wed, 20 Aug 2014 10:44:08 -0700 (PDT) Received: by 10.107.6.68 with HTTP; Wed, 20 Aug 2014 10:44:08 -0700 (PDT) In-Reply-To: References: Date: Wed, 20 Aug 2014 10:44:08 -0700 X-Google-Sender-Auth: kfAMZDVR4LI5eV42WAUJsShxEsA Message-ID: Subject: Re: RadosGW crashing on copy for one specific object From: Yehuda Sadeh To: Sylvain Munaut Cc: "ceph-devel@vger.kernel.org" Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP If by any chance you applied the previous patch, revert it, as it's wrong. This might fix the issue: Let me know if it works for you. Thanks, Yehuda On Wed, Aug 20, 2014 at 10:33 AM, Yehuda Sadeh 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 wrote: >> On Wed, Aug 20, 2014 at 6:47 AM, Sylvain Munaut >> wrote: >>> Hi, >>> >>> >>>> What does 'radosgw-admin object stat --bucket= --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 --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);