]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix memory growth while deleteing objects with 31378/head
authorMark Kogan <mkogan@redhat.com>
Thu, 5 Sep 2019 09:32:50 +0000 (12:32 +0300)
committerNathan Cutler <ncutler@suse.com>
Wed, 13 Nov 2019 13:08:29 +0000 (14:08 +0100)
radosgw-admin bucket rm --bucket=$BIG_BUCKET --bypass-gc --purge-objects
by freeing <rgw_obj, RGWObjState> map elements allocated at
https://github.com/ceph/ceph/blob/master/src/rgw/rgw_rados.cc#L236
  result = &objs_state[obj];

Fixes: https://tracker.ceph.com/issues/40700
Signed-off-by: Mark Kogan <mkogan@redhat.com>
(cherry picked from commit 21560ed2e141137bbcb4d871eb3908d293a83948)

Conflicts:
    src/rgw/rgw_bucket.cc
- in mimic, "invalidate" is a method of "obj_ctx.obj" where in master it's
  a method of the parent class "obj_ctx"

src/rgw/rgw_bucket.cc

index c975dbca1010f8acbcf31666cc8da40f584ea277..0c95532f87bda10000065dd3a02e481ea2f15670 100644 (file)
@@ -725,6 +725,7 @@ int rgw_remove_bucket_bypass_gc(RGWRados *store, rgw_bucket& bucket,
         }
         max_aio = concurrent_max;
       }
+      obj_ctx.obj.invalidate(obj);
     } // for all RGW objects
   }