From: Zhang Shaowen Date: Wed, 20 Jun 2018 03:45:45 +0000 (+0800) Subject: rgw: "radosgw-admin objects expire" always returns ok even if the process X-Git-Tag: v13.2.1~50^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F23001%2Fhead;p=ceph.git rgw: "radosgw-admin objects expire" always returns ok even if the process fails. Fixes: http://tracker.ceph.com/issues/24592 Signed-off-by: Zhang Shaowen (cherry picked from commit f6fe07e8f549f6c54e4bc81a89558f14e71d3d9f) --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 451713adb738..99d6969d28db 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -5934,9 +5934,8 @@ next: } if (opt_cmd == OPT_OBJECTS_EXPIRE) { - int ret = store->process_expire_objects(); - if (ret < 0) { - cerr << "ERROR: process_expire_objects() processing returned error: " << cpp_strerror(-ret) << std::endl; + if (!store->process_expire_objects()) { + cerr << "ERROR: process_expire_objects() processing returned error." << std::endl; return 1; } } diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 51c6ef990dfd..8cb9bff17d12 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -13027,10 +13027,9 @@ int RGWRados::process_lc() return lc->process(); } -int RGWRados::process_expire_objects() +bool RGWRados::process_expire_objects() { - obj_expirer->inspect_all_shards(utime_t(), ceph_clock_now()); - return 0; + return obj_expirer->inspect_all_shards(utime_t(), ceph_clock_now()); } int RGWRados::cls_rgw_init_index(librados::IoCtx& index_ctx, librados::ObjectWriteOperation& op, string& oid) diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 7983b0534366..bffeed265abc 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -3638,7 +3638,7 @@ public: int list_gc_objs(int *index, string& marker, uint32_t max, bool expired_only, std::list& result, bool *truncated); int process_gc(bool expired_only); - int process_expire_objects(); + bool process_expire_objects(); int defer_gc(void *ctx, const RGWBucketInfo& bucket_info, const rgw_obj& obj); int process_lc();