Re: rgw: bug#17111 ERROR: got unexpected error when trying to read object: -2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 09/14/2016 02:15 PM, Yehuda Sadeh-Weinraub wrote:
On Tue, Sep 13, 2016 at 8:33 PM, Yang Joseph <joseph.yang@xxxxxxxxxxxx> 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


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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux