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
>>
prev 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