CEPH filesystem development
 help / color / mirror / Atom feed
From: Yang Joseph <joseph.yang@xtaotech.com>
To: Yehuda Sadeh-Weinraub <yehuda@redhat.com>
Cc: ceph-devel <ceph-devel@vger.kernel.org>,
	Javen Wu <javen.wu@xtaotech.com>
Subject: Re: rgw: bug#17111 ERROR: got unexpected error when trying to read object: -2
Date: Wed, 14 Sep 2016 18:26:36 +0800	[thread overview]
Message-ID: <57D925DC.1060007@xtaotech.com> (raw)
In-Reply-To: <CADRKj5SZe1rQtqn7w3+Yw=ctdU=kkMBwGNUe_b_2rHs6dMesLQ@mail.gmail.com>



On 09/14/2016 02:15 PM, Yehuda Sadeh-Weinraub wrote:
> On Tue, Sep 13, 2016 at 8:33 PM, Yang Joseph <joseph.yang@xtaotech.com> wrote:
>> Hello Oritwas,
>>
>> I am aware of that you are responsible for the issue 17111
>> (http://tracker.ceph.com/issues/17111).
>> Actually, I proposed two fixes already. Could you please take a look at
>> them?
>>
>> 1.
>> https://github.com/ceph/ceph/pull/10820/commits/2e95e2c824c6cc829c39180b0f6809ff312e5892
>>
>> In this proposal, I added two items into manifest :
>>
>> src_instance
>> copied_object
>>
>> "copied_object" is used to indicate whether this object is generated through
>> COPY operation.
>> If so, we must overwrite "instance" with "src_instance" in the GET
>> operation.
>> If not, go as before.
>>
>> We don't need extra tools to fix the old object's manifest that created
>> before this patch, because
>> copied_object's default value is false.
>>
>> 2.
>> https://github.com/ceph/ceph/pull/10820/commits/5104f852d255cfc140be33885f696b7f93a6cfad
>>
>> This is an optimized version.  Only src_instance is added to manifest.
>> In order to distinguish object generated through COPY operation from object
>> generated through
>> PUT operation, I make the none copied object's src_instance equal to its
>> instance value.
>> So if src_instance not equal to its instance, this is a copied object.
>>
>> However, this proposal need an extra tool to migrate old objects to new
>> version RGW with this patch.
> Migration is really a no go. The way to go would be by having the
> decode function smart enough to know whether it's prior to the change
> or after the change and set the field accordingly. That been said, I
> think that instead of calling the field 'src_instance', call it
> 'tail_instance', and always use it when accessing the tail. When
> copying the object, copy that field. When creating a versioned object,
> that field should be equal to the instance field. When decoding an old
> object, it should be set appropriately. Does that make sense?
Good idea! I already commit a new modification according to your
suggestion. Please help review it 
(https://github.com/ceph/ceph/pull/10820/files).

thx,

Yang Honggang
>
> Yehuda
>
>> Your comments are highly appreciated!
>>
>> thx,
>>
>> Yang Honggang
>>


      parent reply	other threads:[~2016-09-14 10:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-14  3:33 rgw: bug#17111 ERROR: got unexpected error when trying to read object: -2 Yang Joseph
     [not found] ` <CADRKj5SZe1rQtqn7w3+Yw=ctdU=kkMBwGNUe_b_2rHs6dMesLQ@mail.gmail.com>
2016-09-14 10:26   ` Yang Joseph [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57D925DC.1060007@xtaotech.com \
    --to=joseph.yang@xtaotech.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=javen.wu@xtaotech.com \
    --cc=yehuda@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox