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
>
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to