From patchwork Thu Aug 21 20:39:43 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yehuda Sadeh X-Patchwork-Id: 4759891 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 9D9E59F2E8 for ; Thu, 21 Aug 2014 20:39:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 22C05201B4 for ; Thu, 21 Aug 2014 20:39:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2BCFB20158 for ; Thu, 21 Aug 2014 20:39:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753979AbaHUUjo (ORCPT ); Thu, 21 Aug 2014 16:39:44 -0400 Received: from mail-ig0-f170.google.com ([209.85.213.170]:34245 "EHLO mail-ig0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753562AbaHUUjo convert rfc822-to-8bit (ORCPT ); Thu, 21 Aug 2014 16:39:44 -0400 Received: by mail-ig0-f170.google.com with SMTP id h3so194362igd.3 for ; Thu, 21 Aug 2014 13:39:43 -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 :content-transfer-encoding; bh=y6/oFx5W8KERJhwtolMWK8O5BECepOXONDZPjjK9eFE=; b=EtIuB4jEzO20NPhozAT9ybDQ8tSg1Lt6f5pXxpz4blyMHGlqhjIKllpu16rEAg7UQI YkoRrDasnoYj0eMRbfGiA+bZQ/J8d4HFsRT/4UONSwmUmVx/XQ1RqFKsNUWIsTzlw5fx GQsmO3xmjJ/PthS96TgoMkeYzLoOWmaSgo+PVCIAKwiwpKSjyuZAl4nUB7S5CmbgmPP+ rILqOsahMtC3pFWtHACaTAB2KKi3EMhaWY1588J2y6OgV2Sja9bkbJwUsM9Y922GQamc WWS71bAGL4buK8ir/h9FFJQaYHvNQFMTUAac1jlapPJoqiYzFAOcUmVbHl4M3m1PUKUn jZKQ== X-Gm-Message-State: ALoCoQn83ftkpqoq7fgz3t/4I16jZL76lukk4TErKxW9L5RMTd+GWiOF+BRh2GqfOagpV8nRC8IQ MIME-Version: 1.0 X-Received: by 10.50.6.77 with SMTP id y13mr6691205igy.21.1408653583516; Thu, 21 Aug 2014 13:39:43 -0700 (PDT) Received: by 10.107.6.68 with HTTP; Thu, 21 Aug 2014 13:39:43 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Aug 2014 13:39:43 -0700 X-Google-Sender-Auth: h4_slwT30aYye57HJRFgKxdHekg 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 Try this: Thanks, Yehuda On Thu, Aug 21, 2014 at 2:38 AM, Sylvain Munaut wrote: > Hi, > > >> 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. > > It doesn't build at all. > > rgw/rgw_rados.h: In member function ‘bool RGWObjManifest::has_tail()’: > rgw/rgw_rados.h:302:34: error: no match for ‘operator!=’ in > ‘((RGWObjManifest*)this)->RGWObjManifest::head_obj != > ((RGWObjManifest*)this)->RGWObjManifest::objs.std::map<_Key, _Tp, > _Compare, _Alloc>::operator[] [with _Key = long unsigned int, _Tp = > RGWObjManifestPart, _Compare = std::less, _Alloc = > std::allocator >>, std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = > RGWObjManifestPart, std::map<_Key, _Tp, _Compare, _Alloc>::key_type = > long unsigned int]((* &0u))’ > ... > > > > Cheers, > > Sylvain > -- > 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 --- 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 ed8f02d..0042df2 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -306,6 +306,11 @@ public: bool has_tail() { if (explicit_objs) { + if (objs.size() == 1) { + map::iterator iter = objs.begin(); + rgw_obj& obj = iter->second.loc; + return head_obj.object != obj.object; + } return (objs.size() >= 2); } return (obj_size > head_size);