From 91eef6712ad29d6c15907f1663e6143fc4144dec Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 31 Jul 2019 17:06:13 -0400 Subject: [PATCH] radosgw-admin: 'mdlog trim' loops until done Signed-off-by: Casey Bodley --- src/rgw/rgw_admin.cc | 8 ++++++-- src/rgw/rgw_metadata.cc | 10 ++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 9cd90916cac3..2b2dba11cfca 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -7078,8 +7078,12 @@ next: } RGWMetadataLog *meta_log = store->svc()->mdlog->get_log(period_id); - ret = meta_log->trim(shard_id, start_time.to_real_time(), end_time.to_real_time(), start_marker, end_marker); - if (ret < 0) { + // trim until -ENODATA + do { + ret = meta_log->trim(shard_id, start_time.to_real_time(), + end_time.to_real_time(), start_marker, end_marker); + } while (ret == 0); + if (ret < 0 && ret != -ENODATA) { cerr << "ERROR: meta_log->trim(): " << cpp_strerror(-ret) << std::endl; return -ret; } diff --git a/src/rgw/rgw_metadata.cc b/src/rgw/rgw_metadata.cc index e6f11671397d..651e10d436f4 100644 --- a/src/rgw/rgw_metadata.cc +++ b/src/rgw/rgw_metadata.cc @@ -240,14 +240,8 @@ int RGWMetadataLog::trim(int shard_id, const real_time& from_time, const real_ti string oid; get_shard_oid(shard_id, oid); - int ret; - - ret = svc.cls->timelog.trim(oid, from_time, end_time, start_marker, end_marker, nullptr, null_yield); - - if (ret == -ENOENT || ret == -ENODATA) - ret = 0; - - return ret; + return svc.cls->timelog.trim(oid, from_time, end_time, start_marker, + end_marker, nullptr, null_yield); } int RGWMetadataLog::lock_exclusive(int shard_id, timespan duration, string& zone_id, string& owner_id) { -- 2.47.3