Just tried that file:

$ s3cmd mv s3://imgiz/data/avatars/492/492923.jpg
s3://imgiz/data/avatars/492/492923.jpg
ERROR: S3 error: 400 (InvalidRequest)

a more verbose output shows that the sign-headers was
'PUT\n\n\n\nx-amz-copy-source:/imgiz/data/avatars/492/492923.jpg\nx-amz-date:Mon,
08 Apr 2013 16:59:30
+0000\nx-amz-metadata-directive:COPY\n/imgiz/data/avatars/492/492923.jpg'

But i guess it doesn't work even if the index is correct. I get the same
response on a clear bucket too.

We might try that but we don't have a file list. I guess its possible with
'rados ls | grep | sed' ?


On Mon, Apr 8, 2013 at 7:53 PM, Yehuda Sadeh <yeh...@inktank.com> wrote:

> Can you try copying one of these objects to itself? Would that work and/or
> change the index entry? Another option would be to try copying all the
> objects to a different bucket.
>
>
> On Mon, Apr 8, 2013 at 9:48 AM, Erdem Agaoglu <erdem.agao...@gmail.com>wrote:
>
>> omap header and all other omap attributes was destroyed. I copied another
>> index over the destroyed one to get a somewhat valid header and it seems
>> intact. After a 'check --fix':
>>
>>  # rados -p .rgw.buckets getomapheader .dir.4470.1
>> header (49 bytes) :
>> 0000 : 03 02 2b 00 00 00 01 00 00 00 01 02 02 18 00 00 : ..+.............
>> 0010 : 00 7d 7a 3f 6e 01 00 00 00 00 d0 00 7e 01 00 00 : .}z?n.......~...
>> 0020 : 00 bb f5 01 00 00 00 00 00 00 00 00 00 00 00 00 : ................
>> 0030 : 00                                              : .
>>
>>
>> Rados shows objects are there:
>>
>> # rados ls -p .rgw.buckets |grep 4470.1_data/avatars
>> 4470.1_data/avatars/11047/11047823_20101211154308.jpg
>> 4470.1_data/avatars/106/106976-orig
>> 4470.1_data/avatars/492/492923.jpg
>> 4470.1_data/avatars/275/275479.jpg
>> ...
>>
>>
>> And i am able to GET them
>>
>> $ s3cmd get s3://imgiz/data/avatars/492/492923.jpg
>> s3://imgiz/data/avatars/492/492923.jpg -> ./492923.jpg  [1 of 1]
>>  3587 of 3587   100% in    0s    93.40 kB/s  done
>>
>>
>> But unable to list them
>>
>> $ s3cmd ls s3://imgiz/data/avatars
>> <NOTHING>
>>
>>
>> My initial expectation was that 'bucket check --fix --check-objects' will
>> actually read the files like 'rados ls' does and would recreate the missing
>> omapkeys but it doesn't seem to do that. Now a simple check says
>>
>> # radosgw-admin bucket check -b imgiz
>> { "existing_header": { "usage": { "rgw.main": { "size_kb": 6000607,
>>               "size_kb_actual": 6258740,
>>               "num_objects": 128443}}},
>>   "calculated_header": { "usage": { "rgw.main": { "size_kb": 6000607,
>>               "size_kb_actual": 6258740,
>>               "num_objects": 128443}}}}
>>
>> But i know we have more than 128k objects.
>>
>>
>>
>> On Mon, Apr 8, 2013 at 7:17 PM, Yehuda Sadeh <yeh...@inktank.com> wrote:
>>
>>> We'll need to have more info about the current state. Was just the
>>> omap header destroyed, or does it still exist? What does the header
>>> contain now? Are you able to actually access objects in that bucket,
>>> but just fail to list them?
>>>
>>> On Mon, Apr 8, 2013 at 8:34 AM, Erdem Agaoglu <erdem.agao...@gmail.com>
>>> wrote:
>>> > Hi again,
>>> >
>>> > I managed to change the file with some other bucket's index.
>>> --check-objects
>>> > --fix worked but my hopes have failed as it didn't actually read
>>> through the
>>> > files or fixed anything. Any suggestions?
>>> >
>>> >
>>> > On Thu, Apr 4, 2013 at 5:56 PM, Erdem Agaoglu <erdem.agao...@gmail.com
>>> >
>>> > wrote:
>>> >>
>>> >> Hi all,
>>> >>
>>> >> After a major failure, and getting our cluster health back OK (with
>>> some
>>> >> help from inktank folks, thanks), we found out that we have managed to
>>> >> corrupt one of our bucket indices. As far as i can track it, we are
>>> missing
>>> >> the omapheader on that specific index, so we're unable to use
>>> radosgw-admin
>>> >> tools to fix it.
>>> >>
>>> >> While a healthy (smaller) bucket answers
>>> >> # radosgw-admin bucket check -b imgdoviz
>>> >> { "existing_header": { "usage": { "rgw.main": { "size_kb": 4140,
>>> >>               "size_kb_actual": 4484,
>>> >>               "num_objects": 157}}},
>>> >>   "calculated_header": { "usage": { "rgw.main": { "size_kb": 4140,
>>> >>               "size_kb_actual": 4484,
>>> >>               "num_objects": 157}}}}
>>> >>
>>> >> The faulty one fails with
>>> >> # radosgw-admin bucket check -b imgiz
>>> >> failed to list objects in bucket=imgiz(@.rgw.buckets[4470.1]) err=(22)
>>> >> Invalid argument
>>> >> failed to check index err=(22) Invalid argument
>>> >>
>>> >> When i push further
>>> >> # radosgw-admin bucket check -b imgiz --check-objects --fix
>>> >> failed to list objects in bucket=imgiz(@.rgw.buckets[4470.1]) err=(22)
>>> >> Invalid argument
>>> >> Checking objects, decreasing bucket 2-phase commit timeout.
>>> >> ** Note that timeout will reset only when operation completes
>>> successfully
>>> >> **
>>> >> ERROR: failed operation r=-22
>>> >> ERROR: failed operation r=-22
>>> >> ..
>>> >> last line keeps repeating without any progress.
>>> >>
>>> >> I checked the file omapheaders and while the healty bucket has:
>>> >> # rados -p .rgw.buckets getomapheader .dir.6912.3
>>> >> header (49 bytes) :
>>> >> 0000 : 03 02 2b 00 00 00 01 00 00 00 01 02 02 18 00 00 :
>>> ..+.............
>>> >> 0010 : 00 a8 af 40 00 00 00 00 00 00 10 46 00 00 00 00 :
>>> ...@.......F....
>>> >> 0020 : 00 9d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :
>>> ................
>>> >> 0030 : 00                                              : .
>>> >>
>>> >> the faulty one is missing it
>>> >> # rados -p .rgw.buckets getomapheader .dir.4470.1
>>> >> header (0 bytes) :
>>> >>
>>> >>
>>> >> I'm currently in the process of understanding how to create a readable
>>> >> header. My hopes are even while its wrong, radosgw-admin will be able
>>> to
>>> >> read through objects and fix the necessary parts. But i'm not sure
>>> how to
>>> >> set the new-header. It seems there is a setomapheader counterpart for
>>> >> getomapheader but it only accepts values from commandline so i don't
>>> know
>>> >> how to push a rgw-readable binary with it.
>>> >>
>>> >> Is this somewhat possible?
>>> >>
>>> >> Thanks in advance.
>>> >>
>>> >> --
>>> >> erdem agaoglu
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > erdem agaoglu
>>> >
>>> > _______________________________________________
>>> > ceph-users mailing list
>>> > ceph-users@lists.ceph.com
>>> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>>> >
>>>
>>
>>
>>
>> --
>> erdem agaoglu
>>
>
>


-- 
erdem agaoglu
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to