From: Zhang Shaowen Date: Tue, 6 Jun 2017 07:43:20 +0000 (+0800) Subject: rgw: datalog trim and mdlog trim handles the result returned by osd X-Git-Tag: v11.2.1~5^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1fc14857a9dd81b1b4726428f115ef5cfb495781;p=ceph.git 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 (cherry picked from commit 7fd6e031e5b0b1f3eca70c5b459d50f6f214171f) --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index d1ad3467e9f..6ac10283208 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -6215,7 +6215,7 @@ next: map markers; ret = store->get_bi_log_status(bucket, 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 9e9c17c3099..af011b59e52 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -1826,7 +1826,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; @@ -1837,7 +1837,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 57568873b41..ebb36b4cf65 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;