]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw: radosgw-admin should paginate internally when listing bucket 37802/head
authorJ. Eric Ivancich <ivancich@redhat.com>
Thu, 1 Oct 2020 17:33:01 +0000 (13:33 -0400)
committerNathan Cutler <ncutler@suse.com>
Mon, 26 Oct 2020 19:22:00 +0000 (20:22 +0100)
commit23a61f4841d798d924faea05f9598991fcc94cf0
treed5e70f3e4b39befecc8eb58824d3203b74fd3260
parenta2010cbc82ce53c909c3d230726d633f552e43a1
rgw: radosgw-admin should paginate internally when listing bucket

Currently `radosgw-admin bucket list ...`, when listing a bucket, asks
for the value of "--max-entries" internally. To list a large bucket
entirely the user would have to set "--max-entries" to a large value
(e.g., 10000000). Internally this doesn't paginate, so it will try to
produce the entire list at once. This can consume a lot of memory, and
there are known cases where this induces an out-of-memory crash.

So now we'll set a maximum pagination size of 10,000. So even with
large values of "--max-entries" it will still be able to produce the
full listing without stressing memory, because it will ask for at most
10,000 entries at a time.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit 6d033061bf9eaebf3dab37b9ed45de22ce6fa6b7)

Conflicts:
src/rgw/rgw_admin.cc
- RGWRados::Bucket::List.list_objects() does not take null_yield
  argument in nautilus
- formatter does not have get() method in nautilus
src/rgw/rgw_admin.cc