Hi,
I was able to clean up the objects by hand. I leave my breadcrumbs here in
case someone finds it useful.

1. Get all rados objects via `radosgw-admin bucket radoslist --bucket
$BUCKET` and filter the ones the you need to remove
2. Remove the rados objects via `rados -p $RGWDATAPOOL rm $RADOSOBJECT
3. Check which files is in which omapkey is in which index ($BUCKETID is in
radosgw-admin bucket stats)
# for index in `rados -p $RGWINDEXPOOL ls | grep $BUCKETID`; do
>   for omap in `rados -p eu-central-1.rgw.buckets.index listomapkeys
${index} | grep $FILESYOUREMOVED`; do
>     echo "Index: ${index} - OMAP ${omap}"
>   done
> done

4. Remove the omapkeys after you checked the list is what actually should
be removed from the index
# for index in `rados -p $RGWINDEXPOOL ls | grep $BUCKETID`; do
>   for omap in `rados -p eu-central-1.rgw.buckets.index listomapkeys
${index} | grep $FILESYOUREMOVED`; do
>     rados -p eu-central-1.rgw.buckets.index rmomapkey ${index} ${omap}"
>   done
> done

5. run `radosgw-admin bucket check --fix --bucket $BUCKET` to have the
correct statistics

The message unable to find head object data pool for is still there, but
now I don't care. (I also have this for a healthy bucket, where I test
stuff like this prior, which gets recreated periodically)


Am Mi., 23. Nov. 2022 um 12:22 Uhr schrieb Boris Behrens <b...@kervyn.de>:

> Hi,
> we have a customer that got some _multipart_ files in his bucket, but the
> bucket got no unfinished multipart objects.
> So I tried to remove them via
>
> $ radosgw-admin object rm --bucket BUCKET
> --object=_multipart_OBJECT.qjqyT8bXiWW5jdbxpVqHxXnLWOG3koUi.1
> ERROR: object remove returned: (2) No such file or directory
>
> Doing this with --debug_ms=1 I see this line:
>  osd_op_reply(108
> ff7a8b0c-07e6-463a-861b-78f0adeba8ad.2297644274.57___multipart_OBJECT.qjqyT8bXiWW5jdbxpVqHxXnLWOG3koUi.1
> [getxattrs,stat] v0'0 uv0 ondisk = -2 ((2) No such file or directory)) v8
> ==== 345+0+0 (crc 0 0 0) 0x7f35ac01c040 con 0x55a8b470fba0
>
> I then tried to remove the leading _ from the object name, but this also
> did not work.
> Then I proceeded to remove the rados object and just do a
> $ bucket check --fix --bucket BUCKET
> ...
> 2022-11-23T11:21:14.214+0000 7fd50a8fd980  0 int
> RGWRados::check_disk_state(librados::v14_2_0::IoCtx, const RGWBucketInfo&,
> rgw_bucket_dir_entry&, rgw_bucket_dir_entry&, ceph::bufferlist&,
> optional_yield) WARNING: unable to find head object data pool for
> "BUCKET:SOME_AVAILABLE_OBJECT", not updating version pool/epoch
> ...
>
> And the calculated bucket size, is still the same and the index will not
> get updated.
>
> What to do now?
>
> --
> Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im
> groüen Saal.
>


-- 
Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im
groüen Saal.
_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io

Reply via email to