From: Satoru Takeuchi Date: Mon, 27 Dec 2021 08:03:41 +0000 (+0000) Subject: rgw: remove bucket API returns NoSuchKey than NoSuchBucket X-Git-Tag: v16.2.8~57^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e0efad0de569cdab2429e1ad4daaf73402a20478;p=ceph.git rgw: remove bucket API returns NoSuchKey than NoSuchBucket Remove bucket API returns NoSuchKey but NoSuchBucket is appropriate in this case. Code path: RGWRadosStore::get_bucket -> RGWRadosBucket::get_bucket_info -> RGWBucketCtl::read_bucket_info -> RGWBucketCtl::read_bucket_entrypoint_info -> RGWSI_Bucket_SObj::read_bucket_entrypoint_info -> RGWSI_MetaBackend_SObj::get_entry -> rgw_get_system_obj -> RGWSI_SysObj::Obj::ROp::stat -> RGWSI_SysObj_Core::stat # return -ENOENT here. [1]: https://docs.ceph.com/en/pacific/radosgw/adminops/#remove-bucket Fixes: https://tracker.ceph.com/issues/53731 Signed-off-by: Satoru Takeuchi (cherry picked from commit 375c22aba3ea1d4af6b05a3c83b0aee6ad2a0b6a) --- diff --git a/src/rgw/rgw_rest_bucket.cc b/src/rgw/rgw_rest_bucket.cc index 52520269e561..ea61006ed26c 100644 --- a/src/rgw/rgw_rest_bucket.cc +++ b/src/rgw/rgw_rest_bucket.cc @@ -224,6 +224,9 @@ void RGWOp_Bucket_Remove::execute(optional_yield y) op_ret = store->get_bucket(s, s->user.get(), string(), bucket_name, &bucket, y); if (op_ret < 0) { ldpp_dout(this, 0) << "get_bucket returned ret=" << op_ret << dendl; + if (op_ret == -ENOENT) { + op_ret = -ERR_NO_SUCH_BUCKET; + } return; } @@ -404,5 +407,4 @@ RGWOp *RGWHandler_Bucket::op_delete() return new RGWOp_Object_Remove; return new RGWOp_Bucket_Remove; -} - +} \ No newline at end of file diff --git a/src/rgw/services/svc_bucket_sobj.cc b/src/rgw/services/svc_bucket_sobj.cc index 13aeedf03d6e..5272a17d08d1 100644 --- a/src/rgw/services/svc_bucket_sobj.cc +++ b/src/rgw/services/svc_bucket_sobj.cc @@ -639,5 +639,4 @@ int RGWSI_Bucket_SObj::read_buckets_stats(RGWSI_Bucket_X_Ctx& ctx, } return m.size(); -} - +} \ No newline at end of file