* rgw: bug#17111 ERROR: got unexpected error when trying to read object: -2 @ 2016-09-14 3:33 Yang Joseph [not found] ` <CADRKj5SZe1rQtqn7w3+Yw=ctdU=kkMBwGNUe_b_2rHs6dMesLQ@mail.gmail.com> 0 siblings, 1 reply; 2+ messages in thread From: Yang Joseph @ 2016-09-14 3:33 UTC (permalink / raw) To: owasserm; +Cc: yehuda, ceph-devel 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. Your comments are highly appreciated! thx, Yang Honggang ^ permalink raw reply [flat|nested] 2+ messages in thread
[parent not found: <CADRKj5SZe1rQtqn7w3+Yw=ctdU=kkMBwGNUe_b_2rHs6dMesLQ@mail.gmail.com>]
* Re: rgw: bug#17111 ERROR: got unexpected error when trying to read object: -2 [not found] ` <CADRKj5SZe1rQtqn7w3+Yw=ctdU=kkMBwGNUe_b_2rHs6dMesLQ@mail.gmail.com> @ 2016-09-14 10:26 ` Yang Joseph 0 siblings, 0 replies; 2+ messages in thread From: Yang Joseph @ 2016-09-14 10:26 UTC (permalink / raw) To: Yehuda Sadeh-Weinraub; +Cc: ceph-devel, Javen Wu 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 >> ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-09-14 10:26 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.