From 7fd6e031e5b0b1f3eca70c5b459d50f6f214171f Mon Sep 17 00:00:00 2001 From: Zhang Shaowen Date: Tue, 6 Jun 2017 15:43:20 +0800 Subject: [PATCH] rgw: datalog trim and mdlog trim handles the result returned by osd incorrectly. Fixes: http://tracker.ceph.com/issues/20190 Signed-off-by: Zhang Shaowen --- src/rgw/rgw_admin.cc | 2 +- src/rgw/rgw_bucket.cc | 4 ++-- src/rgw/rgw_metadata.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index dfe61e0ded8..7a3fea6a11c 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -6682,7 +6682,7 @@ next: map markers; ret = store->get_bi_log_status(bucket_info, shard_id, markers); if (ret < 0) { - cerr << "ERROR: trim_bi_log_entries(): " << cpp_strerror(-ret) << std::endl; + cerr << "ERROR: get_bi_log_status(): " << cpp_strerror(-ret) << std::endl; return -ret; } formatter->open_object_section("entries"); diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 8302b5a8e7f..c6ca15e072d 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -1933,7 +1933,7 @@ int RGWDataChangesLog::trim_entries(int shard_id, const real_time& start_time, c ret = store->time_log_trim(oids[shard_id], start_time, end_time, start_marker, end_marker); - if (ret == -ENOENT) + if (ret == -ENOENT || ret == -ENODATA) ret = 0; return ret; @@ -1944,7 +1944,7 @@ int RGWDataChangesLog::trim_entries(const real_time& start_time, const real_time { for (int shard = 0; shard < num_shards; shard++) { int ret = store->time_log_trim(oids[shard], start_time, end_time, start_marker, end_marker); - if (ret == -ENOENT) { + if (ret == -ENOENT || ret == -ENODATA) { continue; } if (ret < 0) diff --git a/src/rgw/rgw_metadata.cc b/src/rgw/rgw_metadata.cc index 0a0f3dec324..45123730b68 100644 --- a/src/rgw/rgw_metadata.cc +++ b/src/rgw/rgw_metadata.cc @@ -220,7 +220,7 @@ int RGWMetadataLog::trim(int shard_id, const real_time& from_time, const real_ti ret = store->time_log_trim(oid, from_time, end_time, start_marker, end_marker); - if (ret == -ENOENT) + if (ret == -ENOENT || ret == -ENODATA) ret = 0; return ret; -- 2.39.5