rgw: `radosgw-admin bucket rm ... --purge-objects` can hang...
This command can hang (i.e., enter an infinite loop) due to
problematic bucket index entries left as a result of bug
https://tracker.ceph.com/issues/38007 .
The fix is to ignore the false bucket index entries -- since they do
not represent actual objects -- and remove all actual objects in the
bucket, so that bucket itself can be removed.
This fixes the both code paths whether `--bypass-gc` is specified or
not.
Furthermore, to made these operations more efficient, the internal
listing of the bucket is done unordered. This would improve behavior
when removing buckets with a large number of objects.
Fixes: http://tracker.ceph.com/issues/38134 Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>