From 29a4d520aba6f958d5c791fbd9970ca5ab89f093 Mon Sep 17 00:00:00 2001 From: Kalpesh Pandya Date: Tue, 1 Jun 2021 14:45:14 +0530 Subject: [PATCH] rgw: DPP addition to log messages Following are the files focused in this PR: 1. rgw_lc.cc 2. rgw_rados.cc 3. rgw_op.cc 4. services/svc_rados.cc 5. rgw_object_expirer_core.cc 6. rgw_quota.cc Signed-off-by: Kalpesh Pandya --- src/rgw/librgw.cc | 2 +- src/rgw/rgw_admin.cc | 8 +- src/rgw/rgw_bucket.cc | 8 +- src/rgw/rgw_file.cc | 4 +- src/rgw/rgw_lc.cc | 58 +++++++-------- src/rgw/rgw_main.cc | 2 +- src/rgw/rgw_metadata.cc | 10 +-- src/rgw/rgw_metadata.h | 6 +- src/rgw/rgw_object_expirer_core.cc | 10 +-- src/rgw/rgw_op.cc | 55 +++++++------- src/rgw/rgw_orphan.cc | 8 +- src/rgw/rgw_quota.cc | 58 ++++++++------- src/rgw/rgw_quota.h | 4 +- src/rgw/rgw_rados.cc | 94 ++++++++++++------------ src/rgw/rgw_rados.h | 22 +++--- src/rgw/rgw_realm_reloader.cc | 2 +- src/rgw/rgw_rest_log.cc | 2 +- src/rgw/rgw_rest_metadata.cc | 2 +- src/rgw/rgw_sal.h | 10 +-- src/rgw/rgw_sal_rados.cc | 18 ++--- src/rgw/rgw_sal_rados.h | 10 +-- src/rgw/rgw_sync_trace.cc | 2 +- src/rgw/rgw_trim_bilog.cc | 4 +- src/rgw/rgw_user.cc | 2 +- src/rgw/services/svc_config_key_rados.cc | 2 +- src/rgw/services/svc_meta_be.h | 7 +- src/rgw/services/svc_meta_be_sobj.cc | 5 +- src/rgw/services/svc_meta_be_sobj.h | 3 +- src/rgw/services/svc_rados.cc | 36 ++++----- src/rgw/services/svc_rados.h | 11 +-- src/rgw/services/svc_sys_obj.cc | 4 +- src/rgw/services/svc_sys_obj.h | 2 +- src/rgw/services/svc_sys_obj_core.cc | 9 ++- src/rgw/services/svc_sys_obj_core.h | 3 +- src/rgw/services/svc_zone.cc | 2 +- src/test/rgw/test_rgw_throttle.cc | 2 +- 36 files changed, 252 insertions(+), 235 deletions(-) diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc index 7d43662abdd36..f889b36b059b0 100644 --- a/src/rgw/librgw.cc +++ b/src/rgw/librgw.cc @@ -615,7 +615,7 @@ namespace rgw { fe->run(); - r = store->register_to_service_map("rgw-nfs", service_map_meta); + r = store->register_to_service_map(this, "rgw-nfs", service_map_meta); if (r < 0) { derr << "ERROR: failed to register to service map: " << cpp_strerror(-r) << dendl; /* ignore error */ diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 99f7656971aea..9b7464e710775 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -6045,7 +6045,7 @@ int main(int argc, const char **argv) } do { - ret = store->meta_list_keys_next(handle, max, user_ids, + ret = store->meta_list_keys_next(dpp(), handle, max, user_ids, &truncated); if (ret < 0 && ret != -ENOENT) { cerr << "ERROR: buckets limit check lists_keys_next(): " @@ -6280,7 +6280,7 @@ int main(int argc, const char **argv) struct rgw_log_entry entry; // peek at first entry to get bucket metadata - r = static_cast(store)->getRados()->log_show_next(h, &entry); + r = static_cast(store)->getRados()->log_show_next(dpp(), h, &entry); if (r < 0) { cerr << "error reading log " << oid << ": " << cpp_strerror(-r) << std::endl; return -r; @@ -6316,7 +6316,7 @@ int main(int argc, const char **argv) formatter->flush(cout); } next: - r = static_cast(store)->getRados()->log_show_next(h, &entry); + r = static_cast(store)->getRados()->log_show_next(dpp(), h, &entry); } while (r > 0); if (r < 0) { @@ -7566,7 +7566,7 @@ next: do { list keys; left = (max_entries_specified ? max_entries - count : max); - ret = store->meta_list_keys_next(handle, left, keys, &truncated); + ret = store->meta_list_keys_next(dpp(), handle, left, keys, &truncated); if (ret < 0 && ret != -ENOENT) { cerr << "ERROR: lists_keys_next(): " << cpp_strerror(-ret) << std::endl; return -ret; diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index f03d3919a543f..d356a909ba1a5 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -515,7 +515,7 @@ bool rgw_find_bucket_by_id(const DoutPrefixProvider *dpp, CephContext *cct, rgw: } do { list keys; - ret = store->meta_list_keys_next(handle, 1000, keys, &truncated); + ret = store->meta_list_keys_next(dpp, handle, 1000, keys, &truncated); if (ret < 0) { cerr << "ERROR: lists_keys_next(): " << cpp_strerror(-ret) << std::endl; store->meta_list_keys_complete(handle); @@ -1428,7 +1428,7 @@ int RGWBucketAdminOp::info(rgw::sal::Store* store, while (ret == 0 && truncated) { std::list buckets; constexpr int max_keys = 1000; - ret = store->meta_list_keys_next(handle, max_keys, buckets, + ret = store->meta_list_keys_next(dpp, handle, max_keys, buckets, &truncated); for (auto& bucket_name : buckets) { if (show_stats) { @@ -1597,7 +1597,7 @@ static int process_stale_instances(rgw::sal::Store* store, RGWBucketAdminOpState do { list keys; - ret = store->meta_list_keys_next(handle, default_max_keys, keys, &truncated); + ret = store->meta_list_keys_next(dpp, handle, default_max_keys, keys, &truncated); if (ret < 0 && ret != -ENOENT) { cerr << "ERROR: lists_keys_next(): " << cpp_strerror(-ret) << std::endl; return ret; @@ -1730,7 +1730,7 @@ int RGWBucketAdminOp::fix_lc_shards(rgw::sal::Store* store, }); do { list keys; - ret = store->meta_list_keys_next(handle, default_max_keys, keys, &truncated); + ret = store->meta_list_keys_next(dpp, handle, default_max_keys, keys, &truncated); if (ret < 0 && ret != -ENOENT) { std::cerr << "ERROR: lists_keys_next(): " << cpp_strerror(-ret) << std::endl; return ret; diff --git a/src/rgw/rgw_file.cc b/src/rgw/rgw_file.cc index b7ba615cdf77d..70cb773883057 100644 --- a/src/rgw/rgw_file.cc +++ b/src/rgw/rgw_file.cc @@ -1868,7 +1868,7 @@ namespace rgw { return -EIO; } - op_ret = state->bucket->check_quota(user_quota, bucket_quota, real_ofs, null_yield, true); + op_ret = state->bucket->check_quota(this, user_quota, bucket_quota, real_ofs, null_yield, true); /* max_size exceed */ if (op_ret < 0) return -EIO; @@ -1910,7 +1910,7 @@ namespace rgw { goto done; } - op_ret = state->bucket->check_quota(user_quota, bucket_quota, state->obj_size, null_yield, true); + op_ret = state->bucket->check_quota(this, user_quota, bucket_quota, state->obj_size, null_yield, true); /* max_size exceed */ if (op_ret < 0) { goto done; diff --git a/src/rgw/rgw_lc.cc b/src/rgw/rgw_lc.cc index df3b10e24d238..9ea78c93b35f0 100644 --- a/src/rgw/rgw_lc.cc +++ b/src/rgw/rgw_lc.cc @@ -307,7 +307,7 @@ int RGWLC::bucket_lc_prepare(int index, LCWorker* worker) vector entries; string marker; - dout(5) << "RGWLC::bucket_lc_prepare(): PREPARE " + ldpp_dout(this, 5) << "RGWLC::bucket_lc_prepare(): PREPARE " << "index: " << index << " worker ix: " << worker->ix << dendl; @@ -337,7 +337,7 @@ int RGWLC::bucket_lc_prepare(int index, LCWorker* worker) return 0; } -static bool obj_has_expired(CephContext *cct, ceph::real_time mtime, int days, +static bool obj_has_expired(const DoutPrefixProvider *dpp, CephContext *cct, ceph::real_time mtime, int days, ceph::real_time *expire_time = nullptr) { double timediff, cmp; @@ -358,7 +358,7 @@ static bool obj_has_expired(CephContext *cct, ceph::real_time mtime, int days, *expire_time = mtime + make_timespan(cmp); } - ldout(cct, 20) << __func__ << __func__ + ldpp_dout(dpp, 20) << __func__ << __func__ << "(): mtime=" << mtime << " days=" << days << " base_time=" << base_time << " timediff=" << timediff << " cmp=" << cmp @@ -469,7 +469,7 @@ public: list_params.marker = pre_obj.key; int ret = fetch(dpp); if (ret < 0) { - ldout(store->ctx(), 0) << "ERROR: list_op returned ret=" << ret + ldpp_dout(dpp, 0) << "ERROR: list_op returned ret=" << ret << dendl; return ret; } @@ -841,7 +841,7 @@ int RGWLC::handle_multipart_expiration(rgw::sal::Bucket* target, auto wt = boost::get>(wi); auto& [rule, obj] = wt; RGWMPObj mp_obj; - if (obj_has_expired(cct, obj.meta.mtime, rule.mp_expiration)) { + if (obj_has_expired(this, cct, obj.meta.mtime, rule.mp_expiration)) { rgw_obj_key key(obj.key); if (!mp_obj.from_meta(key.name)) { return; @@ -876,7 +876,7 @@ int RGWLC::handle_multipart_expiration(rgw::sal::Bucket* target, ++prefix_iter) { if (worker_should_stop(stop_at, once)) { - ldout(cct, 5) << __func__ << " interval budget EXPIRED worker " + ldpp_dout(this, 5) << __func__ << " interval budget EXPIRED worker " << worker->ix << dendl; return 0; @@ -964,7 +964,7 @@ static int check_tags(const DoutPrefixProvider *dpp, lc_op_ctx& oc, bool *skip) int ret = read_obj_tags(dpp, oc.obj.get(), oc.rctx, tags_bl); if (ret < 0) { if (ret != -ENODATA) { - ldout(oc.cct, 5) << "ERROR: read_obj_tags returned r=" + ldpp_dout(oc.dpp, 5) << "ERROR: read_obj_tags returned r=" << ret << " " << oc.wq->thr_name() << dendl; } return 0; @@ -974,13 +974,13 @@ static int check_tags(const DoutPrefixProvider *dpp, lc_op_ctx& oc, bool *skip) auto iter = tags_bl.cbegin(); dest_obj_tags.decode(iter); } catch (buffer::error& err) { - ldout(oc.cct,0) << "ERROR: caught buffer::error, couldn't decode TagSet " + ldpp_dout(oc.dpp,0) << "ERROR: caught buffer::error, couldn't decode TagSet " << oc.wq->thr_name() << dendl; return -EIO; } if (! has_all_tags(op, dest_obj_tags)) { - ldout(oc.cct, 20) << __func__ << "() skipping obj " << oc.obj + ldpp_dout(oc.dpp, 20) << __func__ << "() skipping obj " << oc.obj << " as tags do not match in rule: " << op.id << " " << oc.wq->thr_name() << dendl; @@ -1007,7 +1007,7 @@ public: if (ret == -ENOENT) { return false; } - ldout(oc.cct, 0) << "ERROR: check_tags on obj=" << oc.obj + ldpp_dout(oc.dpp, 0) << "ERROR: check_tags on obj=" << oc.obj << " returned ret=" << ret << " " << oc.wq->thr_name() << dendl; return false; @@ -1060,7 +1060,7 @@ public: ceph::real_clock::to_time_t(*op.expiration_date); *exp_time = *op.expiration_date; } else { - is_expired = obj_has_expired(oc.cct, mtime, op.expiration, exp_time); + is_expired = obj_has_expired(dpp, oc.cct, mtime, op.expiration, exp_time); } ldpp_dout(dpp, 20) << __func__ << "(): key=" << o.key << ": is_expired=" @@ -1075,20 +1075,20 @@ public: if (o.is_delete_marker()) { r = remove_expired_obj(oc.dpp, oc, true); if (r < 0) { - ldout(oc.cct, 0) << "ERROR: current is-dm remove_expired_obj " + ldpp_dout(oc.dpp, 0) << "ERROR: current is-dm remove_expired_obj " << oc.bucket << ":" << o.key << " " << cpp_strerror(r) << " " << oc.wq->thr_name() << dendl; return r; } - ldout(oc.cct, 2) << "DELETED: current is-dm " + ldpp_dout(oc.dpp, 2) << "DELETED: current is-dm " << oc.bucket << ":" << o.key << " " << oc.wq->thr_name() << dendl; } else { /* ! o.is_delete_marker() */ r = remove_expired_obj(oc.dpp, oc, !oc.bucket->versioned()); if (r < 0) { - ldout(oc.cct, 0) << "ERROR: remove_expired_obj " + ldpp_dout(oc.dpp, 0) << "ERROR: remove_expired_obj " << oc.bucket << ":" << o.key << " " << cpp_strerror(r) << " " << oc.wq->thr_name() << dendl; @@ -1097,7 +1097,7 @@ public: if (perfcounter) { perfcounter->inc(l_rgw_lc_expire_current, 1); } - ldout(oc.cct, 2) << "DELETED:" << oc.bucket << ":" << o.key + ldpp_dout(oc.dpp, 2) << "DELETED:" << oc.bucket << ":" << o.key << " " << oc.wq->thr_name() << dendl; } return 0; @@ -1120,7 +1120,7 @@ public: } int expiration = oc.op.noncur_expiration; - bool is_expired = obj_has_expired(oc.cct, oc.effective_mtime, expiration, + bool is_expired = obj_has_expired(dpp, oc.cct, oc.effective_mtime, expiration, exp_time); ldpp_dout(dpp, 20) << __func__ << "(): key=" << o.key << ": is_expired=" @@ -1135,7 +1135,7 @@ public: auto& o = oc.o; int r = remove_expired_obj(oc.dpp, oc, true); if (r < 0) { - ldout(oc.cct, 0) << "ERROR: remove_expired_obj (non-current expiration) " + ldpp_dout(oc.dpp, 0) << "ERROR: remove_expired_obj (non-current expiration) " << oc.bucket << ":" << o.key << " " << cpp_strerror(r) << " " << oc.wq->thr_name() << dendl; @@ -1144,7 +1144,7 @@ public: if (perfcounter) { perfcounter->inc(l_rgw_lc_expire_noncurrent, 1); } - ldout(oc.cct, 2) << "DELETED:" << oc.bucket << ":" << o.key + ldpp_dout(oc.dpp, 2) << "DELETED:" << oc.bucket << ":" << o.key << " (non-current expiration) " << oc.wq->thr_name() << dendl; return 0; @@ -1179,7 +1179,7 @@ public: auto& o = oc.o; int r = remove_expired_obj(oc.dpp, oc, true); if (r < 0) { - ldout(oc.cct, 0) << "ERROR: remove_expired_obj (delete marker expiration) " + ldpp_dout(oc.dpp, 0) << "ERROR: remove_expired_obj (delete marker expiration) " << oc.bucket << ":" << o.key << " " << cpp_strerror(r) << " " << oc.wq->thr_name() @@ -1189,7 +1189,7 @@ public: if (perfcounter) { perfcounter->inc(l_rgw_lc_expire_dm, 1); } - ldout(oc.cct, 2) << "DELETED:" << oc.bucket << ":" << o.key + ldpp_dout(oc.dpp, 2) << "DELETED:" << oc.bucket << ":" << o.key << " (delete marker expiration) " << oc.wq->thr_name() << dendl; return 0; @@ -1231,10 +1231,10 @@ public: ceph::real_clock::to_time_t(*transition.date); *exp_time = *transition.date; } else { - is_expired = obj_has_expired(oc.cct, mtime, transition.days, exp_time); + is_expired = obj_has_expired(dpp, oc.cct, mtime, transition.days, exp_time); } - ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": is_expired=" + ldpp_dout(oc.dpp, 20) << __func__ << "(): key=" << o.key << ": is_expired=" << is_expired << " " << oc.wq->thr_name() << dendl; @@ -1511,7 +1511,7 @@ int RGWLC::bucket_lc_process(string& shard_id, LCWorker* worker, ++prefix_iter) { if (worker_should_stop(stop_at, once)) { - ldout(cct, 5) << __func__ << " interval budget EXPIRED worker " + ldpp_dout(this, 5) << __func__ << " interval budget EXPIRED worker " << worker->ix << dendl; return 0; @@ -1568,7 +1568,7 @@ int RGWLC::bucket_lc_post(int index, int max_lock_sec, obj_names[index], cookie); - dout(5) << "RGWLC::bucket_lc_post(): POST " << entry + ldpp_dout(this, 5) << "RGWLC::bucket_lc_post(): POST " << entry << " index: " << index << " worker ix: " << worker->ix << dendl; @@ -1679,7 +1679,7 @@ bool RGWLC::expired_session(time_t started) auto now = time(nullptr); - dout(16) << "RGWLC::expired_session" + ldpp_dout(this, 16) << "RGWLC::expired_session" << " started: " << started << " interval: " << interval << "(*2==" << 2*interval << ")" << " now: " << now @@ -1700,7 +1700,7 @@ time_t RGWLC::thread_stop_at() int RGWLC::process(int index, int max_lock_secs, LCWorker* worker, bool once = false) { - dout(5) << "RGWLC::process(): ENTER: " + ldpp_dout(this, 5) << "RGWLC::process(): ENTER: " << "index: " << index << " worker ix: " << worker->ix << dendl; @@ -1740,12 +1740,12 @@ int RGWLC::process(int index, int max_lock_secs, LCWorker* worker, if (ret >= 0) { if (entry.status == lc_processing) { if (expired_session(entry.start_time)) { - dout(5) << "RGWLC::process(): STALE lc session found for: " << entry + ldpp_dout(this, 5) << "RGWLC::process(): STALE lc session found for: " << entry << " index: " << index << " worker ix: " << worker->ix << " (clearing)" << dendl; } else { - dout(5) << "RGWLC::process(): ACTIVE entry: " << entry + ldpp_dout(this, 5) << "RGWLC::process(): ACTIVE entry: " << entry << " index: " << index << " worker ix: " << worker->ix << dendl; goto exit; @@ -2135,7 +2135,7 @@ std::string s3_expiration_header( RGWObjTags::tag_map_t obj_tag_map = obj_tagset.get_tags(); if (cct->_conf->subsys.should_gather(ceph_subsys_rgw, 16)) { for (const auto& elt : obj_tag_map) { - ldout(cct, 16) << __func__ + ldpp_dout(dpp, 16) << __func__ << "() key=" << elt.first << " val=" << elt.second << dendl; } diff --git a/src/rgw/rgw_main.cc b/src/rgw/rgw_main.cc index 0e3c4973cafc0..d4f3ec480a69f 100644 --- a/src/rgw/rgw_main.cc +++ b/src/rgw/rgw_main.cc @@ -592,7 +592,7 @@ int radosgw_Main(int argc, const char **argv) fes.push_back(fe); } - r = store->register_to_service_map("rgw", service_map_meta); + r = store->register_to_service_map(&dp, "rgw", service_map_meta); if (r < 0) { derr << "ERROR: failed to register to service map: " << cpp_strerror(-r) << dendl; diff --git a/src/rgw/rgw_metadata.cc b/src/rgw/rgw_metadata.cc index 726802e4a4261..c6cf81ef2fc66 100644 --- a/src/rgw/rgw_metadata.cc +++ b/src/rgw/rgw_metadata.cc @@ -342,7 +342,7 @@ public: return 0; } - int list_keys_next(void *handle, int max, list& keys, bool *truncated) override { + int list_keys_next(const DoutPrefixProvider *dpp, void *handle, int max, list& keys, bool *truncated) override { iter_data *data = static_cast(handle); for (int i = 0; i < max && data->iter != data->sections.end(); ++i, ++(data->iter)) { keys.push_back(*data->iter); @@ -539,11 +539,11 @@ int RGWMetadataHandler_GenericMetaBE::list_keys_init(const DoutPrefixProvider *d return 0; } -int RGWMetadataHandler_GenericMetaBE::list_keys_next(void *handle, int max, list& keys, bool *truncated) +int RGWMetadataHandler_GenericMetaBE::list_keys_next(const DoutPrefixProvider *dpp, void *handle, int max, list& keys, bool *truncated) { auto op = static_cast(handle); - int ret = op->list_next(max, &keys, truncated); + int ret = op->list_next(dpp, max, &keys, truncated); if (ret < 0 && ret != -ENOENT) { return ret; } @@ -802,13 +802,13 @@ int RGWMetadataManager::list_keys_init(const DoutPrefixProvider *dpp, const stri return 0; } -int RGWMetadataManager::list_keys_next(void *handle, int max, list& keys, bool *truncated) +int RGWMetadataManager::list_keys_next(const DoutPrefixProvider *dpp, void *handle, int max, list& keys, bool *truncated) { list_keys_handle *h = static_cast(handle); RGWMetadataHandler *handler = h->handler; - return handler->list_keys_next(h->handle, max, keys, truncated); + return handler->list_keys_next(dpp, h->handle, max, keys, truncated); } void RGWMetadataManager::list_keys_complete(void *handle) diff --git a/src/rgw/rgw_metadata.h b/src/rgw/rgw_metadata.h index c9adeee4d2e6f..299bf391b3547 100644 --- a/src/rgw/rgw_metadata.h +++ b/src/rgw/rgw_metadata.h @@ -88,7 +88,7 @@ public: std::function f) = 0; virtual int list_keys_init(const DoutPrefixProvider *dpp, const string& marker, void **phandle) = 0; - virtual int list_keys_next(void *handle, int max, list& keys, bool *truncated) = 0; + virtual int list_keys_next(const DoutPrefixProvider *dpp, void *handle, int max, list& keys, bool *truncated) = 0; virtual void list_keys_complete(void *handle) = 0; virtual string get_marker(void *handle) = 0; @@ -183,7 +183,7 @@ public: int get_shard_id(const string& entry, int *shard_id) override; int list_keys_init(const DoutPrefixProvider *dpp, const std::string& marker, void **phandle) override; - int list_keys_next(void *handle, int max, std::list& keys, bool *truncated) override; + int list_keys_next(const DoutPrefixProvider *dpp, void *handle, int max, std::list& keys, bool *truncated) override; void list_keys_complete(void *handle) override; std::string get_marker(void *handle) override; @@ -256,7 +256,7 @@ public: int list_keys_init(const DoutPrefixProvider *dpp, const string& section, void **phandle); int list_keys_init(const DoutPrefixProvider *dpp, const string& section, const string& marker, void **phandle); - int list_keys_next(void *handle, int max, list& keys, bool *truncated); + int list_keys_next(const DoutPrefixProvider *dpp, void *handle, int max, list& keys, bool *truncated); void list_keys_complete(void *handle); string get_marker(void *handle); diff --git a/src/rgw/rgw_object_expirer_core.cc b/src/rgw/rgw_object_expirer_core.cc index 183c101de2a74..0b9b60f888add 100644 --- a/src/rgw/rgw_object_expirer_core.cc +++ b/src/rgw/rgw_object_expirer_core.cc @@ -72,14 +72,14 @@ static void objexp_get_shard(int shard_num, *shard = objexp_hint_get_shardname(shard_num); } -static int objexp_hint_parse(CephContext *cct, cls_timeindex_entry &ti_entry, +static int objexp_hint_parse(const DoutPrefixProvider *dpp, CephContext *cct, cls_timeindex_entry &ti_entry, objexp_hint_entry *hint_entry) { try { auto iter = ti_entry.value.cbegin(); decode(*hint_entry, iter); } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: couldn't decode avail_pools" << dendl; + ldpp_dout(dpp, 0) << "ERROR: couldn't decode avail_pools" << dendl; } return 0; @@ -238,7 +238,7 @@ void RGWObjectExpirer::garbage_chunk(const DoutPrefixProvider *dpp, ldpp_dout(dpp, 15) << "got removal hint for: " << iter->key_ts.sec() \ << " - " << iter->key_ext << dendl; - int ret = objexp_hint_parse(store->ctx(), *iter, &hint); + int ret = objexp_hint_parse(dpp, store->ctx(), *iter, &hint); if (ret < 0) { ldpp_dout(dpp, 1) << "cannot parse removal hint for " << hint.obj_key << dendl; continue; @@ -392,13 +392,13 @@ void *RGWObjectExpirer::OEWorker::entry() { utime_t last_run; do { utime_t start = ceph_clock_now(); - ldout(cct, 2) << "object expiration: start" << dendl; + ldpp_dout(this, 2) << "object expiration: start" << dendl; if (oe->inspect_all_shards(this, last_run, start)) { /* All shards have been processed properly. Next time we can start * from this moment. */ last_run = start; } - ldout(cct, 2) << "object expiration: stop" << dendl; + ldpp_dout(this, 2) << "object expiration: stop" << dendl; if (oe->going_down()) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index ecd4fdab62ac1..b3df7480cc78b 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -89,7 +89,7 @@ using rgw::IAM::Policy; static string mp_ns = RGW_OBJ_NS_MULTIPART; static string shadow_ns = RGW_OBJ_NS_SHADOW; -static void forward_req_info(CephContext *cct, req_info& info, const std::string& bucket_name); +static void forward_req_info(const DoutPrefixProvider *dpp, CephContext *cct, req_info& info, const std::string& bucket_name); static MultipartMetaFilter mp_filter; @@ -1345,11 +1345,11 @@ int RGWOp::init_quota() return 0; } -static bool validate_cors_rule_method(RGWCORSRule *rule, const char *req_meth) { +static bool validate_cors_rule_method(const DoutPrefixProvider *dpp, RGWCORSRule *rule, const char *req_meth) { uint8_t flags = 0; if (!req_meth) { - dout(5) << "req_meth is null" << dendl; + ldpp_dout(dpp, 5) << "req_meth is null" << dendl; return false; } @@ -1360,22 +1360,22 @@ static bool validate_cors_rule_method(RGWCORSRule *rule, const char *req_meth) { else if (strcmp(req_meth, "HEAD") == 0) flags = RGW_CORS_HEAD; if (rule->get_allowed_methods() & flags) { - dout(10) << "Method " << req_meth << " is supported" << dendl; + ldpp_dout(dpp, 10) << "Method " << req_meth << " is supported" << dendl; } else { - dout(5) << "Method " << req_meth << " is not supported" << dendl; + ldpp_dout(dpp, 5) << "Method " << req_meth << " is not supported" << dendl; return false; } return true; } -static bool validate_cors_rule_header(RGWCORSRule *rule, const char *req_hdrs) { +static bool validate_cors_rule_header(const DoutPrefixProvider *dpp, RGWCORSRule *rule, const char *req_hdrs) { if (req_hdrs) { vector hdrs; get_str_vec(req_hdrs, hdrs); for (const auto& hdr : hdrs) { if (!rule->is_header_allowed(hdr.c_str(), hdr.length())) { - dout(5) << "Header " << hdr << " is not registered in this rule" << dendl; + ldpp_dout(dpp, 5) << "Header " << hdr << " is not registered in this rule" << dendl; return false; } } @@ -1419,13 +1419,13 @@ int RGWOp::read_bucket_cors() * any of the values in list of headers do not set any additional headers and * terminate this set of steps. * */ -static void get_cors_response_headers(RGWCORSRule *rule, const char *req_hdrs, string& hdrs, string& exp_hdrs, unsigned *max_age) { +static void get_cors_response_headers(const DoutPrefixProvider *dpp, RGWCORSRule *rule, const char *req_hdrs, string& hdrs, string& exp_hdrs, unsigned *max_age) { if (req_hdrs) { list hl; get_str_list(req_hdrs, hl); for(list::iterator it = hl.begin(); it != hl.end(); ++it) { if (!rule->is_header_allowed((*it).c_str(), (*it).length())) { - dout(5) << "Header " << (*it) << " is not registered in this rule" << dendl; + ldpp_dout(dpp, 5) << "Header " << (*it) << " is not registered in this rule" << dendl; } else { if (hdrs.length() > 0) hdrs.append(","); hdrs.append((*it)); @@ -1488,7 +1488,7 @@ bool RGWOp::generate_cors_headers(string& origin, string& method, string& header if (req_meth) { method = req_meth; /* CORS 6.2.5. */ - if (!validate_cors_rule_method(rule, req_meth)) { + if (!validate_cors_rule_method(this, rule, req_meth)) { return false; } } @@ -1497,7 +1497,7 @@ bool RGWOp::generate_cors_headers(string& origin, string& method, string& header const char *req_hdrs = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_HEADERS"); /* CORS 6.2.6. */ - get_cors_response_headers(rule, req_hdrs, headers, exp_headers, max_age); + get_cors_response_headers(this, rule, req_hdrs, headers, exp_headers, max_age); return true; } @@ -1703,7 +1703,8 @@ struct rgw_slo_part { string etag; }; -static int iterate_slo_parts(CephContext *cct, +static int iterate_slo_parts(const DoutPrefixProvider *dpp, + CephContext *cct, rgw::sal::Store*store, off_t ofs, off_t end, @@ -1761,7 +1762,7 @@ static int iterate_slo_parts(CephContext *cct, if (found_start) { if (cb) { - dout(20) << "iterate_slo_parts()" + ldpp_dout(dpp, 20) << "iterate_slo_parts()" << " obj=" << part.obj_name << " start_ofs=" << start_ofs << " end_ofs=" << end_ofs @@ -2014,7 +2015,7 @@ int RGWGetObj::handle_slo_manifest(bufferlist& bl, optional_yield y) << " total=" << total_len << dendl; - r = iterate_slo_parts(s->cct, store, ofs, end, slo_parts, + r = iterate_slo_parts(this, s->cct, store, ofs, end, slo_parts, get_obj_user_manifest_iterate_cb, (void *)this); if (r < 0) { return r; @@ -3773,7 +3774,7 @@ void RGWPutObj::execute(optional_yield y) if (!chunked_upload) { /* with chunked upload we don't know how big is the upload. we also check sizes at the end anyway */ - op_ret = s->bucket->check_quota(user_quota, bucket_quota, s->content_length, y); + op_ret = s->bucket->check_quota(this, user_quota, bucket_quota, s->content_length, y); if (op_ret < 0) { ldpp_dout(this, 20) << "check_quota() returned ret=" << op_ret << dendl; return; @@ -3984,7 +3985,7 @@ void RGWPutObj::execute(optional_yield y) return; } - op_ret = s->bucket->check_quota(user_quota, bucket_quota, s->obj_size, y); + op_ret = s->bucket->check_quota(this, user_quota, bucket_quota, s->obj_size, y); if (op_ret < 0) { ldpp_dout(this, 20) << "second check_quota() returned op_ret=" << op_ret << dendl; return; @@ -4202,7 +4203,7 @@ void RGWPostObj::execute(optional_yield y) ceph::buffer::list bl, aclbl; int len = 0; - op_ret = s->bucket->check_quota(user_quota, bucket_quota, s->content_length, y); + op_ret = s->bucket->check_quota(this, user_quota, bucket_quota, s->content_length, y); if (op_ret < 0) { return; } @@ -4307,7 +4308,7 @@ void RGWPostObj::execute(optional_yield y) s->object->set_obj_size(ofs); - op_ret = s->bucket->check_quota(user_quota, bucket_quota, s->obj_size, y); + op_ret = s->bucket->check_quota(this, user_quota, bucket_quota, s->obj_size, y); if (op_ret < 0) { return; } @@ -5200,7 +5201,7 @@ void RGWCopyObj::execute(optional_yield y) if (!s->system_request) { // no quota enforcement for system requests // enforce quota against the destination bucket owner - op_ret = dest_bucket->check_quota(user_quota, bucket_quota, + op_ret = dest_bucket->check_quota(this, user_quota, bucket_quota, astate->accounted_size, y); if (op_ret < 0) { return; @@ -5696,7 +5697,7 @@ void RGWDeleteCORS::execute(optional_yield y) } void RGWOptionsCORS::get_response_params(string& hdrs, string& exp_hdrs, unsigned *max_age) { - get_cors_response_headers(rule, req_hdrs, hdrs, exp_hdrs, max_age); + get_cors_response_headers(this, rule, req_hdrs, hdrs, exp_hdrs, max_age); } int RGWOptionsCORS::validate_cors_request(RGWCORSConfiguration *cc) { @@ -5706,11 +5707,11 @@ int RGWOptionsCORS::validate_cors_request(RGWCORSConfiguration *cc) { return -ENOENT; } - if (!validate_cors_rule_method(rule, req_meth)) { + if (!validate_cors_rule_method(this, rule, req_meth)) { return -ENOENT; } - if (!validate_cors_rule_header(rule, req_hdrs)) { + if (!validate_cors_rule_header(this, rule, req_hdrs)) { return -ENOENT; } @@ -7109,7 +7110,7 @@ int RGWBulkUploadOp::handle_dir_verify_permission(optional_yield y) return 0; } -static void forward_req_info(CephContext *cct, req_info& info, const std::string& bucket_name) +static void forward_req_info(const DoutPrefixProvider *dpp, CephContext *cct, req_info& info, const std::string& bucket_name) { /* the request of container or object level will contain bucket name. * only at account level need to append the bucket name */ @@ -7117,7 +7118,7 @@ static void forward_req_info(CephContext *cct, req_info& info, const std::string return; } - ldout(cct, 20) << "append the bucket: "<< bucket_name << " to req_info" << dendl; + ldpp_dout(dpp, 20) << "append the bucket: "<< bucket_name << " to req_info" << dendl; info.script_uri.append("/").append(bucket_name); info.request_uri_aws4 = info.request_uri = info.script_uri; info.effective_uri = "/" + bucket_name; @@ -7170,7 +7171,7 @@ int RGWBulkUploadOp::handle_dir(const std::string_view path, optional_yield y) new_bucket.name = bucket_name; rgw_placement_rule placement_rule; placement_rule.storage_class = s->info.storage_class; - forward_req_info(s->cct, info, bucket_name); + forward_req_info(this, s->cct, info, bucket_name); op_ret = store->create_bucket(this, s->user.get(), new_bucket, store->get_zone()->get_zonegroup().get_id(), @@ -7290,7 +7291,7 @@ int RGWBulkUploadOp::handle_file(const std::string_view path, return op_ret; } - op_ret = bucket->check_quota(user_quota, bucket_quota, size, y); + op_ret = bucket->check_quota(this, user_quota, bucket_quota, size, y); if (op_ret < 0) { return op_ret; } @@ -7370,7 +7371,7 @@ int RGWBulkUploadOp::handle_file(const std::string_view path, return op_ret; } - op_ret = bucket->check_quota(user_quota, bucket_quota, size, y); + op_ret = bucket->check_quota(this, user_quota, bucket_quota, size, y); if (op_ret < 0) { ldpp_dout(this, 20) << "quota exceeded for path=" << path << dendl; return op_ret; diff --git a/src/rgw/rgw_orphan.cc b/src/rgw/rgw_orphan.cc index 199f533b669ed..39f2bb00a1359 100644 --- a/src/rgw/rgw_orphan.cc +++ b/src/rgw/rgw_orphan.cc @@ -391,7 +391,7 @@ int RGWOrphanSearch::build_buckets_instance_index(const DoutPrefixProvider *dpp) do { list keys; - ret = store->meta_list_keys_next(handle, max, keys, &truncated); + ret = store->meta_list_keys_next(dpp, handle, max, keys, &truncated); if (ret < 0) { ldpp_dout(dpp, -1) << "ERROR: lists_keys_next(): " << cpp_strerror(-ret) << dendl; return ret; @@ -471,7 +471,7 @@ int RGWOrphanSearch::pop_and_handle_stat_op(const DoutPrefixProvider *dpp, mapwait(); + int ret = front_op->wait(dpp); if (ret < 0) { if (ret != -ENOENT) { ldpp_dout(dpp, -1) << "ERROR: stat_async() returned error: " << cpp_strerror(-ret) << dendl; @@ -1057,7 +1057,7 @@ int RGWRadosList::pop_and_handle_stat_op( std::set obj_oids; std::unique_ptr front_op = std::move(ops.front()); - int ret = front_op->wait(); + int ret = front_op->wait(dpp); if (ret < 0) { if (ret != -ENOENT) { ldpp_dout(dpp, -1) << "ERROR: stat_async() returned error: " << @@ -1324,7 +1324,7 @@ int RGWRadosList::run(const DoutPrefixProvider *dpp) do { std::list buckets; - ret = store->meta_list_keys_next(handle, max_keys, buckets, &truncated); + ret = store->meta_list_keys_next(dpp, handle, max_keys, buckets, &truncated); for (std::string& bucket_id : buckets) { ret = run(dpp, bucket_id); diff --git a/src/rgw/rgw_quota.cc b/src/rgw/rgw_quota.cc index 02d1652bd5fbc..ba5b79e5f90a6 100644 --- a/src/rgw/rgw_quota.cc +++ b/src/rgw/rgw_quota.cc @@ -666,7 +666,7 @@ int RGWUserStatsCache::sync_all_users(const DoutPrefixProvider *dpp, optional_yi do { list keys; - ret = store->meta_list_keys_next(handle, max, keys, &truncated); + ret = store->meta_list_keys_next(dpp, handle, max, keys, &truncated); if (ret < 0) { ldpp_dout(dpp, 0) << "ERROR: lists_keys_next(): ret=" << ret << dendl; goto done; @@ -715,12 +715,14 @@ protected: public: virtual ~RGWQuotaInfoApplier() {} - virtual bool is_size_exceeded(const char * const entity, + virtual bool is_size_exceeded(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t size) const = 0; - virtual bool is_num_objs_exceeded(const char * const entity, + virtual bool is_num_objs_exceeded(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t num_objs) const = 0; @@ -730,12 +732,12 @@ public: class RGWQuotaInfoDefApplier : public RGWQuotaInfoApplier { public: - bool is_size_exceeded(const char * const entity, + bool is_size_exceeded(const DoutPrefixProvider *dpp, const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t size) const override; - bool is_num_objs_exceeded(const char * const entity, + bool is_num_objs_exceeded(const DoutPrefixProvider *dpp, const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t num_objs) const override; @@ -743,19 +745,20 @@ public: class RGWQuotaInfoRawApplier : public RGWQuotaInfoApplier { public: - bool is_size_exceeded(const char * const entity, + bool is_size_exceeded(const DoutPrefixProvider *dpp, const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t size) const override; - bool is_num_objs_exceeded(const char * const entity, + bool is_num_objs_exceeded(const DoutPrefixProvider *dpp, const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t num_objs) const override; }; -bool RGWQuotaInfoDefApplier::is_size_exceeded(const char * const entity, +bool RGWQuotaInfoDefApplier::is_size_exceeded(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t size) const @@ -769,7 +772,7 @@ bool RGWQuotaInfoDefApplier::is_size_exceeded(const char * const entity, const uint64_t new_size = rgw_rounded_objsize(size); if (cur_size + new_size > static_cast(qinfo.max_size)) { - dout(10) << "quota exceeded: stats.size_rounded=" << stats.size_rounded + ldpp_dout(dpp, 10) << "quota exceeded: stats.size_rounded=" << stats.size_rounded << " size=" << new_size << " " << entity << "_quota.max_size=" << qinfo.max_size << dendl; return true; @@ -778,7 +781,8 @@ bool RGWQuotaInfoDefApplier::is_size_exceeded(const char * const entity, return false; } -bool RGWQuotaInfoDefApplier::is_num_objs_exceeded(const char * const entity, +bool RGWQuotaInfoDefApplier::is_num_objs_exceeded(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t num_objs) const @@ -789,7 +793,7 @@ bool RGWQuotaInfoDefApplier::is_num_objs_exceeded(const char * const entity, } if (stats.num_objects + num_objs > static_cast(qinfo.max_objects)) { - dout(10) << "quota exceeded: stats.num_objects=" << stats.num_objects + ldpp_dout(dpp, 10) << "quota exceeded: stats.num_objects=" << stats.num_objects << " " << entity << "_quota.max_objects=" << qinfo.max_objects << dendl; return true; @@ -798,7 +802,8 @@ bool RGWQuotaInfoDefApplier::is_num_objs_exceeded(const char * const entity, return false; } -bool RGWQuotaInfoRawApplier::is_size_exceeded(const char * const entity, +bool RGWQuotaInfoRawApplier::is_size_exceeded(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t size) const @@ -811,7 +816,7 @@ bool RGWQuotaInfoRawApplier::is_size_exceeded(const char * const entity, const uint64_t cur_size = stats.size; if (cur_size + size > static_cast(qinfo.max_size)) { - dout(10) << "quota exceeded: stats.size=" << stats.size + ldpp_dout(dpp, 10) << "quota exceeded: stats.size=" << stats.size << " size=" << size << " " << entity << "_quota.max_size=" << qinfo.max_size << dendl; return true; @@ -820,7 +825,8 @@ bool RGWQuotaInfoRawApplier::is_size_exceeded(const char * const entity, return false; } -bool RGWQuotaInfoRawApplier::is_num_objs_exceeded(const char * const entity, +bool RGWQuotaInfoRawApplier::is_num_objs_exceeded(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& qinfo, const RGWStorageStats& stats, const uint64_t num_objs) const @@ -831,7 +837,7 @@ bool RGWQuotaInfoRawApplier::is_num_objs_exceeded(const char * const entity, } if (stats.num_objects + num_objs > static_cast(qinfo.max_objects)) { - dout(10) << "quota exceeded: stats.num_objects=" << stats.num_objects + ldpp_dout(dpp, 10) << "quota exceeded: stats.num_objects=" << stats.num_objects << " " << entity << "_quota.max_objects=" << qinfo.max_objects << dendl; return true; @@ -859,7 +865,8 @@ class RGWQuotaHandlerImpl : public RGWQuotaHandler { RGWBucketStatsCache bucket_stats_cache; RGWUserStatsCache user_stats_cache; - int check_quota(const char * const entity, + int check_quota(const DoutPrefixProvider *dpp, + const char * const entity, const RGWQuotaInfo& quota, const RGWStorageStats& stats, const uint64_t num_objs, @@ -870,20 +877,20 @@ class RGWQuotaHandlerImpl : public RGWQuotaHandler { const auto& quota_applier = RGWQuotaInfoApplier::get_instance(quota); - ldout(store->ctx(), 20) << entity + ldpp_dout(dpp, 20) << entity << " quota: max_objects=" << quota.max_objects << " max_size=" << quota.max_size << dendl; - if (quota_applier.is_num_objs_exceeded(entity, quota, stats, num_objs)) { + if (quota_applier.is_num_objs_exceeded(dpp, entity, quota, stats, num_objs)) { return -ERR_QUOTA_EXCEEDED; } - if (quota_applier.is_size_exceeded(entity, quota, stats, size)) { + if (quota_applier.is_size_exceeded(dpp, entity, quota, stats, size)) { return -ERR_QUOTA_EXCEEDED; } - ldout(store->ctx(), 20) << entity << " quota OK:" + ldpp_dout(dpp, 20) << entity << " quota OK:" << " stats.num_objects=" << stats.num_objects << " stats.size=" << stats.size << dendl; return 0; @@ -893,7 +900,8 @@ public: bucket_stats_cache(_store), user_stats_cache(dpp, _store, quota_threads) {} - int check_quota(const rgw_user& user, + int check_quota(const DoutPrefixProvider *dpp, + const rgw_user& user, rgw_bucket& bucket, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, @@ -918,7 +926,7 @@ public: if (ret < 0) { return ret; } - ret = check_quota("bucket", bucket_quota, bucket_stats, num_objs, size); + ret = check_quota(dpp, "bucket", bucket_quota, bucket_stats, num_objs, size); if (ret < 0) { return ret; } @@ -930,7 +938,7 @@ public: if (ret < 0) { return ret; } - ret = check_quota("user", user_quota, user_stats, num_objs, size); + ret = check_quota(dpp, "user", user_quota, user_stats, num_objs, size); if (ret < 0) { return ret; } @@ -943,11 +951,11 @@ public: user_stats_cache.adjust_stats(user, bucket, obj_delta, added_bytes, removed_bytes); } - void check_bucket_shards(uint64_t max_objs_per_shard, uint64_t num_shards, + void check_bucket_shards(const DoutPrefixProvider *dpp, uint64_t max_objs_per_shard, uint64_t num_shards, uint64_t num_objs, bool& need_resharding, uint32_t *suggested_num_shards) override { if (num_objs > num_shards * max_objs_per_shard) { - ldout(store->ctx(), 0) << __func__ << ": resharding needed: stats.num_objects=" << num_objs + ldpp_dout(dpp, 0) << __func__ << ": resharding needed: stats.num_objects=" << num_objs << " shard max_objects=" << max_objs_per_shard * num_shards << dendl; need_resharding = true; if (suggested_num_shards) { diff --git a/src/rgw/rgw_quota.h b/src/rgw/rgw_quota.h index df50d6cdad18d..61bd25261aa92 100644 --- a/src/rgw/rgw_quota.h +++ b/src/rgw/rgw_quota.h @@ -96,11 +96,11 @@ public: RGWQuotaHandler() {} virtual ~RGWQuotaHandler() { } - virtual int check_quota(const rgw_user& bucket_owner, rgw_bucket& bucket, + virtual int check_quota(const DoutPrefixProvider *dpp, const rgw_user& bucket_owner, rgw_bucket& bucket, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t num_objs, uint64_t size, optional_yield y) = 0; - virtual void check_bucket_shards(uint64_t max_objs_per_shard, uint64_t num_shards, + virtual void check_bucket_shards(const DoutPrefixProvider *dpp, uint64_t max_objs_per_shard, uint64_t num_shards, uint64_t num_objs, bool& need_resharding, uint32_t *suggested_num_shards) = 0; virtual void update_stats(const rgw_user& bucket_owner, rgw_bucket& bucket, int obj_delta, uint64_t added_bytes, uint64_t removed_bytes) = 0; diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index e24ae308b491f..c0747b0f055d8 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -645,13 +645,13 @@ void RGWRados::wakeup_meta_sync_shards(set& shard_ids) } } -void RGWRados::wakeup_data_sync_shards(const rgw_zone_id& source_zone, map >& shard_ids) +void RGWRados::wakeup_data_sync_shards(const DoutPrefixProvider *dpp, const rgw_zone_id& source_zone, map >& shard_ids) { - ldout(ctx(), 20) << __func__ << ": source_zone=" << source_zone << ", shard_ids=" << shard_ids << dendl; + ldpp_dout(dpp, 20) << __func__ << ": source_zone=" << source_zone << ", shard_ids=" << shard_ids << dendl; std::lock_guard l{data_sync_thread_lock}; auto iter = data_sync_processor_threads.find(source_zone); if (iter == data_sync_processor_threads.end()) { - ldout(ctx(), 10) << __func__ << ": couldn't find sync thread for zone " << source_zone << ", skipping async data sync processing" << dendl; + ldpp_dout(dpp, 10) << __func__ << ": couldn't find sync thread for zone " << source_zone << ", skipping async data sync processing" << dendl; return; } @@ -684,14 +684,14 @@ int RGWRados::get_required_alignment(const DoutPrefixProvider *dpp, const rgw_po IoCtx ioctx; int r = open_pool_ctx(dpp, pool, ioctx, false); if (r < 0) { - ldout(cct, 0) << "ERROR: open_pool_ctx() returned " << r << dendl; + ldpp_dout(dpp, 0) << "ERROR: open_pool_ctx() returned " << r << dendl; return r; } bool requires; r = ioctx.pool_requires_alignment2(&requires); if (r < 0) { - ldout(cct, 0) << "ERROR: ioctx.pool_requires_alignment2() returned " + ldpp_dout(dpp, 0) << "ERROR: ioctx.pool_requires_alignment2() returned " << r << dendl; return r; } @@ -704,12 +704,12 @@ int RGWRados::get_required_alignment(const DoutPrefixProvider *dpp, const rgw_po uint64_t align; r = ioctx.pool_required_alignment2(&align); if (r < 0) { - ldout(cct, 0) << "ERROR: ioctx.pool_required_alignment2() returned " + ldpp_dout(dpp, 0) << "ERROR: ioctx.pool_required_alignment2() returned " << r << dendl; return r; } if (align != 0) { - ldout(cct, 20) << "required alignment=" << align << dendl; + ldpp_dout(dpp, 20) << "required alignment=" << align << dendl; } *alignment = align; return 0; @@ -1124,7 +1124,7 @@ int RGWRados::init_rados() return ret; } -int RGWRados::register_to_service_map(const string& daemon_type, const map& meta) +int RGWRados::register_to_service_map(const DoutPrefixProvider *dpp, const string& daemon_type, const map& meta) { string name = cct->_conf->name.get_id(); if (name.compare(0, 4, "rgw.") == 0) { @@ -1142,18 +1142,18 @@ int RGWRados::register_to_service_map(const string& daemon_type, const map&& status) +int RGWRados::update_service_map(const DoutPrefixProvider *dpp, std::map&& status) { int ret = rados.service_daemon_update_status(move(status)); if (ret < 0) { - ldout(cct, 0) << "ERROR: service_daemon_update_status() returned ret=" << ret << ": " << cpp_strerror(-ret) << dendl; + ldpp_dout(dpp, 0) << "ERROR: service_daemon_update_status() returned ret=" << ret << ": " << cpp_strerror(-ret) << dendl; return ret; } @@ -1505,12 +1505,12 @@ int RGWRados::log_show_init(const DoutPrefixProvider *dpp, const string& name, R return 0; } -int RGWRados::log_show_next(RGWAccessHandle handle, rgw_log_entry *entry) +int RGWRados::log_show_next(const DoutPrefixProvider *dpp, RGWAccessHandle handle, rgw_log_entry *entry) { log_show_state *state = static_cast(handle); off_t off = state->p.get_off(); - ldout(cct, 10) << "log_show_next pos " << state->pos << " bl " << state->bl.length() + ldpp_dout(dpp, 10) << "log_show_next pos " << state->pos << " bl " << state->bl.length() << " off " << off << " eof " << (int)state->eof << dendl; @@ -1533,7 +1533,7 @@ int RGWRados::log_show_next(RGWAccessHandle handle, rgw_log_entry *entry) state->p = state->bl.cbegin(); if ((unsigned)r < chunk) state->eof = true; - ldout(cct, 10) << " read " << r << dendl; + ldpp_dout(dpp, 10) << " read " << r << dendl; } if (state->p.end()) @@ -1701,14 +1701,14 @@ int RGWRados::clear_usage(const DoutPrefixProvider *dpp) return ret; } -int RGWRados::decode_policy(bufferlist& bl, ACLOwner *owner) +int RGWRados::decode_policy(const DoutPrefixProvider *dpp, bufferlist& bl, ACLOwner *owner) { auto i = bl.cbegin(); RGWAccessControlPolicy policy(cct); try { policy.decode_owner(i); } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: could not decode policy, caught buffer::error" << dendl; + ldpp_dout(dpp, 0) << "ERROR: could not decode policy, caught buffer::error" << dendl; return -EIO; } *owner = policy.get_owner(); @@ -3674,7 +3674,7 @@ int RGWRados::stat_remote_obj(const DoutPrefixProvider *dpp, auto& zonegroup_conn_map = svc.zone->get_zonegroup_conn_map(); map::iterator iter = zonegroup_conn_map.find(src_bucket_info->zonegroup); if (iter == zonegroup_conn_map.end()) { - ldout(cct, 0) << "could not find zonegroup connection to zonegroup: " << source_zone << dendl; + ldpp_dout(dpp, 0) << "could not find zonegroup connection to zonegroup: " << source_zone << dendl; return -ENOENT; } conn = iter->second; @@ -3683,7 +3683,7 @@ int RGWRados::stat_remote_obj(const DoutPrefixProvider *dpp, auto& zone_conn_map = svc.zone->get_zone_conn_map(); auto iter = zone_conn_map.find(source_zone); if (iter == zone_conn_map.end()) { - ldout(cct, 0) << "could not find zone connection to zone: " << source_zone << dendl; + ldpp_dout(dpp, 0) << "could not find zone connection to zone: " << source_zone << dendl; return -ENOENT; } conn = iter->second; @@ -3721,7 +3721,7 @@ int RGWRados::stat_remote_obj(const DoutPrefixProvider *dpp, if (extra_data_bl.length()) { JSONParser jp; if (!jp.parse(extra_data_bl.c_str(), extra_data_bl.length())) { - ldout(cct, 0) << "failed to parse response extra data. len=" << extra_data_bl.length() << " data=" << extra_data_bl.c_str() << dendl; + ldpp_dout(dpp, 0) << "failed to parse response extra data. len=" << extra_data_bl.length() << " data=" << extra_data_bl.c_str() << dendl; return -EIO; } @@ -5296,7 +5296,7 @@ static void generate_fake_tag(const DoutPrefixProvider *dpp, rgw::sal::Store* st buf_to_hex(md5, CEPH_CRYPTO_MD5_DIGESTSIZE, md5_str); tag.append(md5_str); - ldout(store->ctx(), 10) << "generate_fake_tag new tag=" << tag << dendl; + ldpp_dout(dpp, 10) << "generate_fake_tag new tag=" << tag << dendl; tag_bl.append(tag.c_str(), tag.size() + 1); } @@ -5592,7 +5592,7 @@ int RGWRados::Object::Stat::stat_async(const DoutPrefixProvider *dpp) } -int RGWRados::Object::Stat::wait() +int RGWRados::Object::Stat::wait(const DoutPrefixProvider *dpp) { if (!state.completion) { return state.ret; @@ -5606,10 +5606,10 @@ int RGWRados::Object::Stat::wait() return state.ret; } - return finish(); + return finish(dpp); } -int RGWRados::Object::Stat::finish() +int RGWRados::Object::Stat::finish(const DoutPrefixProvider *dpp) { map::iterator iter = result.attrs.find(RGW_ATTR_MANIFEST); if (iter != result.attrs.end()) { @@ -5620,7 +5620,7 @@ int RGWRados::Object::Stat::finish() decode(*result.manifest, biter); } catch (buffer::error& err) { RGWRados *store = source->get_store(); - ldout(store->ctx(), 0) << "ERROR: " << __func__ << ": failed to decode manifest" << dendl; + ldpp_dout(dpp, 0) << "ERROR: " << __func__ << ": failed to decode manifest" << dendl; return -EIO; } } @@ -6144,7 +6144,7 @@ int RGWRados::Bucket::UpdateIndex::complete(const DoutPrefixProvider *dpp, int64 ACLOwner owner; if (acl_bl && acl_bl->length()) { - int ret = store->decode_policy(*acl_bl, &owner); + int ret = store->decode_policy(dpp, *acl_bl, &owner); if (ret < 0) { ldpp_dout(dpp, 0) << "WARNING: could not decode policy ret=" << ret << dendl; } @@ -7077,14 +7077,14 @@ int RGWRados::bucket_index_clear_olh(const DoutPrefixProvider *dpp, const RGWBuc return 0; } -static int decode_olh_info(CephContext* cct, const bufferlist& bl, RGWOLHInfo *olh) +static int decode_olh_info(const DoutPrefixProvider *dpp, CephContext* cct, const bufferlist& bl, RGWOLHInfo *olh) { try { auto biter = bl.cbegin(); decode(*olh, biter); return 0; } catch (buffer::error& err) { - ldout(cct, 0) << "ERROR: failed to decode olh info" << dendl; + ldpp_dout(dpp, 0) << "ERROR: failed to decode olh info" << dendl; return -EIO; } } @@ -7132,7 +7132,7 @@ int RGWRados::apply_olh_log(const DoutPrefixProvider *dpp, RGWObjectCtx& obj_ctx auto olh_info = state.attrset.find(RGW_ATTR_OLH_INFO); if (olh_info != state.attrset.end()) { RGWOLHInfo info; - int r = decode_olh_info(cct, olh_info->second, &info); + int r = decode_olh_info(dpp, cct, olh_info->second, &info); if (r < 0) { return r; } @@ -7439,10 +7439,10 @@ int RGWRados::get_olh(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket return -EINVAL; } - return decode_olh_info(cct, iter->second, olh); + return decode_olh_info(dpp, cct, iter->second, olh); } -void RGWRados::check_pending_olh_entries(map& pending_entries, +void RGWRados::check_pending_olh_entries(const DoutPrefixProvider *dpp, map& pending_entries, map *rm_pending_entries) { map::iterator iter = pending_entries.begin(); @@ -7456,7 +7456,7 @@ void RGWRados::check_pending_olh_entries(map& pending_entrie decode(pending_info, biter); } catch (buffer::error& err) { /* skipping bad entry, we could remove it but it might hide a bug */ - ldout(cct, 0) << "ERROR: failed to decode pending entry " << iter->first << dendl; + ldpp_dout(dpp, 0) << "ERROR: failed to decode pending entry " << iter->first << dendl; ++iter; continue; } @@ -7512,7 +7512,7 @@ int RGWRados::follow_olh(const DoutPrefixProvider *dpp, const RGWBucketInfo& buc rgw_filter_attrset(state->attrset, RGW_ATTR_OLH_PENDING_PREFIX, &pending_entries); map rm_pending_entries; - check_pending_olh_entries(pending_entries, &rm_pending_entries); + check_pending_olh_entries(dpp,pending_entries, &rm_pending_entries); if (!rm_pending_entries.empty()) { int ret = remove_olh_pending_entries(dpp, bucket_info, *state, olh_obj, rm_pending_entries); @@ -7536,7 +7536,7 @@ int RGWRados::follow_olh(const DoutPrefixProvider *dpp, const RGWBucketInfo& buc } RGWOLHInfo olh; - int ret = decode_olh_info(cct, iter->second, &olh); + int ret = decode_olh_info(dpp, cct, iter->second, &olh); if (ret < 0) { return ret; } @@ -7915,7 +7915,7 @@ string RGWRados::pool_iterate_get_cursor(RGWPoolIterCtx& ctx) return ctx.iter.get_cursor().to_str(); } -static int do_pool_iterate(CephContext* cct, RGWPoolIterCtx& ctx, uint32_t num, +static int do_pool_iterate(const DoutPrefixProvider *dpp, CephContext* cct, RGWPoolIterCtx& ctx, uint32_t num, vector& objs, bool *is_truncated, RGWAccessListFilter *filter) { @@ -7931,7 +7931,7 @@ static int do_pool_iterate(CephContext* cct, RGWPoolIterCtx& ctx, uint32_t num, rgw_bucket_dir_entry e; string oid = iter->get_oid(); - ldout(cct, 20) << "RGWRados::pool_iterate: got " << oid << dendl; + ldpp_dout(dpp, 20) << "RGWRados::pool_iterate: got " << oid << dendl; // fill it in with initial values; we may correct later if (filter && !filter->filter(oid, oid)) @@ -7947,19 +7947,19 @@ static int do_pool_iterate(CephContext* cct, RGWPoolIterCtx& ctx, uint32_t num, return objs.size(); } -int RGWRados::pool_iterate(RGWPoolIterCtx& ctx, uint32_t num, vector& objs, +int RGWRados::pool_iterate(const DoutPrefixProvider *dpp, RGWPoolIterCtx& ctx, uint32_t num, vector& objs, bool *is_truncated, RGWAccessListFilter *filter) { // catch exceptions from NObjectIterator::operator++() try { - return do_pool_iterate(cct, ctx, num, objs, is_truncated, filter); + return do_pool_iterate(dpp, cct, ctx, num, objs, is_truncated, filter); } catch (const std::system_error& e) { int r = -e.code().value(); - ldout(cct, 10) << "NObjectIterator threw exception " << e.what() + ldpp_dout(dpp, 10) << "NObjectIterator threw exception " << e.what() << ", returning " << r << dendl; return r; } catch (const std::exception& e) { - ldout(cct, 10) << "NObjectIterator threw exception " << e.what() + ldpp_dout(dpp, 10) << "NObjectIterator threw exception " << e.what() << ", returning -5" << dendl; return -EIO; } @@ -7987,7 +7987,7 @@ int RGWRados::list_raw_objects_next(const DoutPrefixProvider *dpp, const string& } RGWAccessListFilterPrefix filter(prefix_filter); vector objs; - int r = pool_iterate(ctx.iter_ctx, max, objs, is_truncated, &filter); + int r = pool_iterate(dpp, ctx.iter_ctx, max, objs, is_truncated, &filter); if (r < 0) { if(r != -ENOENT) ldpp_dout(dpp, 10) << "failed to list objects pool_iterate returned r=" << r << dendl; @@ -8141,7 +8141,7 @@ int RGWRados::bi_list(BucketShard& bs, const string& filter_obj, const string& m return 0; } -int RGWRados::bi_remove(BucketShard& bs) +int RGWRados::bi_remove(const DoutPrefixProvider *dpp, BucketShard& bs) { auto& ref = bs.bucket_obj.get_ref(); int ret = ref.pool.ioctx().remove(ref.obj.oid); @@ -8149,7 +8149,7 @@ int RGWRados::bi_remove(BucketShard& bs) ret = 0; } if (ret < 0) { - ldout(cct, 5) << "bs.index_ctx.remove(" << bs.bucket_obj << ") returned ret=" << ret << dendl; + ldpp_dout(dpp, 5) << "bs.index_ctx.remove(" << bs.bucket_obj << ") returned ret=" << ret << dendl; return ret; } @@ -8988,7 +8988,7 @@ int RGWRados::check_disk_state(const DoutPrefixProvider *dpp, } iter = astate->attrset.find(RGW_ATTR_ACL); if (iter != astate->attrset.end()) { - r = decode_policy(iter->second, &owner); + r = decode_policy(dpp, iter->second, &owner); if (r < 0) { ldpp_dout(dpp, 0) << "WARNING: could not decode policy for object: " << obj << dendl; } @@ -9106,7 +9106,7 @@ int RGWRados::check_bucket_shards(const RGWBucketInfo& bucket_info, const uint64_t max_objs_per_shard = cct->_conf.get_val("rgw_max_objs_per_shard"); - quota_handler->check_bucket_shards(max_objs_per_shard, num_source_shards, + quota_handler->check_bucket_shards(dpp, max_objs_per_shard, num_source_shards, num_objs, need_resharding, &suggested_num_shards); if (! need_resharding) { return 0; @@ -9151,16 +9151,16 @@ int RGWRados::add_bucket_to_reshard(const DoutPrefixProvider *dpp, const RGWBuck return reshard.add(dpp, entry); } -int RGWRados::check_quota(const rgw_user& bucket_owner, rgw_bucket& bucket, +int RGWRados::check_quota(const DoutPrefixProvider *dpp, const rgw_user& bucket_owner, rgw_bucket& bucket, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only) { // if we only check size, then num_objs will set to 0 if(check_size_only) - return quota_handler->check_quota(bucket_owner, bucket, user_quota, bucket_quota, 0, obj_size, y); + return quota_handler->check_quota(dpp, bucket_owner, bucket, user_quota, bucket_quota, 0, obj_size, y); - return quota_handler->check_quota(bucket_owner, bucket, user_quota, bucket_quota, 1, obj_size, y); + return quota_handler->check_quota(dpp, bucket_owner, bucket, user_quota, bucket_quota, 1, obj_size, y); } int RGWRados::get_target_shard_id(const rgw::bucket_index_normal_layout& layout, const string& obj_key, diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 9862ae66a5486..61b747eca8277 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -616,8 +616,8 @@ public: int initialize(const DoutPrefixProvider *dpp); void finalize(); - int register_to_service_map(const string& daemon_type, const map& meta); - int update_service_map(std::map&& status); + int register_to_service_map(const DoutPrefixProvider *dpp, const string& daemon_type, const map& meta); + int update_service_map(const DoutPrefixProvider *dpp, std::map&& status); /// list logs int log_list_init(const DoutPrefixProvider *dpp, const string& prefix, RGWAccessHandle *handle); @@ -628,7 +628,7 @@ public: /// show log int log_show_init(const DoutPrefixProvider *dpp, const string& name, RGWAccessHandle *handle); - int log_show_next(RGWAccessHandle handle, rgw_log_entry *entry); + int log_show_next(const DoutPrefixProvider *dpp, RGWAccessHandle handle, rgw_log_entry *entry); // log bandwidth info int log_usage(const DoutPrefixProvider *dpp, map& usage_info); @@ -878,10 +878,10 @@ public: explicit Stat(RGWRados::Object *_source) : source(_source) {} int stat_async(const DoutPrefixProvider *dpp); - int wait(); + int wait(const DoutPrefixProvider *dpp); int stat(); private: - int finish(); + int finish(const DoutPrefixProvider *dpp); }; }; @@ -1202,7 +1202,7 @@ public: int delete_bucket(RGWBucketInfo& bucket_info, RGWObjVersionTracker& objv_tracker, optional_yield y, const DoutPrefixProvider *dpp, bool check_empty = true); void wakeup_meta_sync_shards(set& shard_ids); - void wakeup_data_sync_shards(const rgw_zone_id& source_zone, map >& shard_ids); + void wakeup_data_sync_shards(const DoutPrefixProvider *dpp, const rgw_zone_id& source_zone, map >& shard_ids); RGWMetaSyncStatusManager* get_meta_sync_manager(); RGWDataSyncStatusManager* get_data_sync_manager(const rgw_zone_id& source_zone); @@ -1313,7 +1313,7 @@ public: int unlink_obj_instance(const DoutPrefixProvider *dpp, RGWObjectCtx& obj_ctx, RGWBucketInfo& bucket_info, const rgw_obj& target_obj, uint64_t olh_epoch, optional_yield y, rgw_zone_set *zones_trace = nullptr); - void check_pending_olh_entries(map& pending_entries, map *rm_pending_entries); + void check_pending_olh_entries(const DoutPrefixProvider *dpp, map& pending_entries, map *rm_pending_entries); int remove_olh_pending_entries(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, RGWObjState& state, const rgw_obj& olh_obj, map& pending_attrs); int follow_olh(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, RGWObjectCtx& ctx, RGWObjState *state, const rgw_obj& olh_obj, rgw_obj *target); int get_olh(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, const rgw_obj& obj, RGWOLHInfo *olh); @@ -1333,7 +1333,7 @@ public: RGWObjectCtx *rctx = static_cast(ctx); rctx->set_prefetch_data(obj); } - int decode_policy(bufferlist& bl, ACLOwner *owner); + int decode_policy(const DoutPrefixProvider *dpp, bufferlist& bl, ACLOwner *owner); int get_bucket_stats(const DoutPrefixProvider *dpp, RGWBucketInfo& bucket_info, int shard_id, string *bucket_ver, string *master_ver, map& stats, string *max_marker, bool* syncstopped = NULL); int get_bucket_stats_async(const DoutPrefixProvider *dpp, RGWBucketInfo& bucket_info, int shard_id, RGWGetBucketStats_CB *cb); @@ -1419,7 +1419,7 @@ public: int bi_list(BucketShard& bs, const string& filter_obj, const string& marker, uint32_t max, list *entries, bool *is_truncated); int bi_list(const DoutPrefixProvider *dpp, rgw_bucket& bucket, const string& obj_name, const string& marker, uint32_t max, list *entries, bool *is_truncated); - int bi_remove(BucketShard& bs); + int bi_remove(const DoutPrefixProvider *dpp, BucketShard& bs); int cls_obj_usage_log_add(const DoutPrefixProvider *dpp, const string& oid, rgw_usage_log_info& info); int cls_obj_usage_log_read(const DoutPrefixProvider *dpp, const string& oid, const string& user, const string& bucket, uint64_t start_epoch, @@ -1465,7 +1465,7 @@ public: int fix_head_obj_locator(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, bool copy_obj, bool remove_bad, rgw_obj_key& key); int fix_tail_obj_locator(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, rgw_obj_key& key, bool fix, bool *need_fix, optional_yield y); - int check_quota(const rgw_user& bucket_owner, rgw_bucket& bucket, + int check_quota(const DoutPrefixProvider *dpp, const rgw_user& bucket_owner, rgw_bucket& bucket, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only = false); @@ -1539,7 +1539,7 @@ public: * filter: if not NULL, will be used to filter returned objects * Returns: 0 on success, -ERR# otherwise. */ - int pool_iterate(RGWPoolIterCtx& ctx, uint32_t num, vector& objs, + int pool_iterate(const DoutPrefixProvider *dpp, RGWPoolIterCtx& ctx, uint32_t num, vector& objs, bool *is_truncated, RGWAccessListFilter *filter); uint64_t next_bucket_id(); diff --git a/src/rgw/rgw_realm_reloader.cc b/src/rgw/rgw_realm_reloader.cc index 36b7cdf5944ee..f3b0d306ef6dd 100644 --- a/src/rgw/rgw_realm_reloader.cc +++ b/src/rgw/rgw_realm_reloader.cc @@ -154,7 +154,7 @@ void RGWRealmReloader::reload() } } - int r = store->register_to_service_map("rgw", service_map_meta); + int r = store->register_to_service_map(&dp, "rgw", service_map_meta); if (r < 0) { ldpp_dout(&dp, -1) << "ERROR: failed to register to service map: " << cpp_strerror(-r) << dendl; diff --git a/src/rgw/rgw_rest_log.cc b/src/rgw/rgw_rest_log.cc index c0e46e4bac4a9..58d37703a261e 100644 --- a/src/rgw/rgw_rest_log.cc +++ b/src/rgw/rgw_rest_log.cc @@ -701,7 +701,7 @@ void RGWOp_DATALog_Notify::execute(optional_yield y) { } } - store->wakeup_data_sync_shards(source_zone, updated_shards); + store->wakeup_data_sync_shards(this, source_zone, updated_shards); op_ret = 0; } diff --git a/src/rgw/rgw_rest_metadata.cc b/src/rgw/rgw_rest_metadata.cc index 1c8bfc6dfbb12..1d84ee399d0ad 100644 --- a/src/rgw/rgw_rest_metadata.cc +++ b/src/rgw/rgw_rest_metadata.cc @@ -142,7 +142,7 @@ void RGWOp_Metadata_List::execute(optional_yield y) { do { list keys; left = (max_entries_specified ? max_entries - count : max); - op_ret = store->meta_list_keys_next(handle, left, keys, &truncated); + op_ret = store->meta_list_keys_next(this, handle, left, keys, &truncated); if (op_ret < 0) { ldpp_dout(this, 5) << "ERROR: lists_keys_next(): " << cpp_strerror(op_ret) << dendl; diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 52b5aaecf91a2..15cecd7874940 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -184,7 +184,7 @@ class Store { virtual int log_usage(const DoutPrefixProvider *dpp, map& usage_info) = 0; virtual int log_op(const DoutPrefixProvider *dpp, std::string& oid, bufferlist& bl) = 0; - virtual int register_to_service_map(const std::string& daemon_type, + virtual int register_to_service_map(const DoutPrefixProvider *dpp, const std::string& daemon_type, const map& meta) = 0; virtual void get_quota(RGWQuotaInfo& bucket_quota, RGWQuotaInfo& user_quota) = 0; virtual int set_buckets_enabled(const DoutPrefixProvider* dpp, vector& buckets, bool enabled) = 0; @@ -196,7 +196,7 @@ class Store { optional_yield y) = 0; virtual RGWDataSyncStatusManager* get_data_sync_manager(const rgw_zone_id& source_zone) = 0; virtual void wakeup_meta_sync_shards(set& shard_ids) = 0; - virtual void wakeup_data_sync_shards(const rgw_zone_id& source_zone, map >& shard_ids) = 0; + virtual void wakeup_data_sync_shards(const DoutPrefixProvider *dpp, const rgw_zone_id& source_zone, map >& shard_ids) = 0; virtual int clear_usage(const DoutPrefixProvider *dpp) = 0; virtual int read_all_usage(const DoutPrefixProvider *dpp, uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries, bool* is_truncated, @@ -205,7 +205,7 @@ class Store { virtual int trim_all_usage(const DoutPrefixProvider *dpp, uint64_t start_epoch, uint64_t end_epoch) = 0; virtual int get_config_key_val(std::string name, bufferlist* bl) = 0; virtual int meta_list_keys_init(const DoutPrefixProvider *dpp, const std::string& section, const std::string& marker, void** phandle) = 0; - virtual int meta_list_keys_next(void* handle, int max, list& keys, bool* truncated) = 0; + virtual int meta_list_keys_next(const DoutPrefixProvider *dpp, void* handle, int max, list& keys, bool* truncated) = 0; virtual void meta_list_keys_complete(void* handle) = 0; virtual std::string meta_get_marker(void* handle) = 0; virtual int meta_remove(const DoutPrefixProvider* dpp, std::string& metadata_key, optional_yield y) = 0; @@ -397,7 +397,7 @@ class Bucket { virtual User* get_owner(void) { return owner; }; virtual ACLOwner get_acl_owner(void) { return ACLOwner(info.owner); }; virtual int check_empty(const DoutPrefixProvider* dpp, optional_yield y) = 0; - virtual int check_quota(RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only = false) = 0; + virtual int check_quota(const DoutPrefixProvider *dpp, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only = false) = 0; virtual int set_instance_attrs(const DoutPrefixProvider* dpp, Attrs& attrs, optional_yield y) = 0; virtual int try_refresh_info(const DoutPrefixProvider* dpp, ceph::real_time* pmtime) = 0; virtual int read_usage(const DoutPrefixProvider *dpp, uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries, @@ -615,7 +615,7 @@ class Object { virtual ~StatOp() = default; virtual int stat_async(const DoutPrefixProvider *dpp) = 0; - virtual int wait() = 0; + virtual int wait(const DoutPrefixProvider *dpp) = 0; }; Object() diff --git a/src/rgw/rgw_sal_rados.cc b/src/rgw/rgw_sal_rados.cc index c77fee75a6189..d538861b1eb73 100644 --- a/src/rgw/rgw_sal_rados.cc +++ b/src/rgw/rgw_sal_rados.cc @@ -474,10 +474,10 @@ int RadosBucket::check_empty(const DoutPrefixProvider* dpp, optional_yield y) return store->getRados()->check_bucket_empty(dpp, info, y); } -int RadosBucket::check_quota(RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, +int RadosBucket::check_quota(const DoutPrefixProvider *dpp, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only) { - return store->getRados()->check_quota(owner->get_id(), get_key(), + return store->getRados()->check_quota(dpp, owner->get_id(), get_key(), user_quota, bucket_quota, obj_size, y, check_size_only); } @@ -539,7 +539,7 @@ int RadosBucket::purge_instance(const DoutPrefixProvider* dpp) << "): " << cpp_strerror(-ret) << std::endl; return ret; } - ret = store->getRados()->bi_remove(bs); + ret = store->getRados()->bi_remove(dpp, bs); if (ret < 0) { cerr << "ERROR: failed to remove bucket index object: " << cpp_strerror(-ret) << std::endl; @@ -992,10 +992,10 @@ int RadosStore::log_op(const DoutPrefixProvider *dpp, std::string& oid, bufferli return ret; } -int RadosStore::register_to_service_map(const std::string& daemon_type, +int RadosStore::register_to_service_map(const DoutPrefixProvider *dpp, const std::string& daemon_type, const map& meta) { - return rados->register_to_service_map(daemon_type, meta); + return rados->register_to_service_map(dpp, daemon_type, meta); } void RadosStore::get_quota(RGWQuotaInfo& bucket_quota, RGWQuotaInfo& user_quota) @@ -1053,9 +1053,9 @@ int RadosStore::meta_list_keys_init(const DoutPrefixProvider *dpp, const std::st return ctl()->meta.mgr->list_keys_init(dpp, section, marker, phandle); } -int RadosStore::meta_list_keys_next(void* handle, int max, list& keys, bool* truncated) +int RadosStore::meta_list_keys_next(const DoutPrefixProvider *dpp, void* handle, int max, list& keys, bool* truncated) { - return ctl()->meta.mgr->list_keys_next(handle, max, keys, truncated); + return ctl()->meta.mgr->list_keys_next(dpp, handle, max, keys, truncated); } void RadosStore::meta_list_keys_complete(void* handle) @@ -1618,10 +1618,10 @@ int RadosObject::RadosStatOp::stat_async(const DoutPrefixProvider *dpp) return parent_op.stat_async(dpp); } -int RadosObject::RadosStatOp::wait() +int RadosObject::RadosStatOp::wait(const DoutPrefixProvider *dpp) { result.obj = source; - int ret = parent_op.wait(); + int ret = parent_op.wait(dpp); if (ret < 0) return ret; diff --git a/src/rgw/rgw_sal_rados.h b/src/rgw/rgw_sal_rados.h index 34aaefd8361de..7607e20c7fb67 100644 --- a/src/rgw/rgw_sal_rados.h +++ b/src/rgw/rgw_sal_rados.h @@ -134,7 +134,7 @@ class RadosObject : public Object { RadosStatOp(RadosObject* _source, RGWObjectCtx* _rctx); virtual int stat_async(const DoutPrefixProvider *dpp) override; - virtual int wait() override; + virtual int wait(const DoutPrefixProvider *dpp) override; }; RadosObject() = default; @@ -310,7 +310,7 @@ class RadosBucket : public Bucket { virtual int remove_metadata(const DoutPrefixProvider* dpp, RGWObjVersionTracker* objv, optional_yield y) override; virtual bool is_owner(User* user) override; virtual int check_empty(const DoutPrefixProvider* dpp, optional_yield y) override; - virtual int check_quota(RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only = false) override; + virtual int check_quota(const DoutPrefixProvider *dpp, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size, optional_yield y, bool check_size_only = false) override; virtual int set_instance_attrs(const DoutPrefixProvider* dpp, Attrs& attrs, optional_yield y) override; virtual int try_refresh_info(const DoutPrefixProvider* dpp, ceph::real_time* pmtime) override; virtual int read_usage(const DoutPrefixProvider *dpp, uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries, @@ -416,7 +416,7 @@ class RadosStore : public Store { virtual int log_usage(const DoutPrefixProvider *dpp, map& usage_info) override; virtual int log_op(const DoutPrefixProvider *dpp, std::string& oid, bufferlist& bl) override; - virtual int register_to_service_map(const std::string& daemon_type, + virtual int register_to_service_map(const DoutPrefixProvider *dpp, const std::string& daemon_type, const map& meta) override; virtual void get_quota(RGWQuotaInfo& bucket_quota, RGWQuotaInfo& user_quota) override; virtual int set_buckets_enabled(const DoutPrefixProvider* dpp, vector& buckets, bool enabled) override; @@ -428,7 +428,7 @@ class RadosStore : public Store { optional_yield y) override; virtual RGWDataSyncStatusManager* get_data_sync_manager(const rgw_zone_id& source_zone) override; virtual void wakeup_meta_sync_shards(set& shard_ids) override { rados->wakeup_meta_sync_shards(shard_ids); } - virtual void wakeup_data_sync_shards(const rgw_zone_id& source_zone, map >& shard_ids) override { rados->wakeup_data_sync_shards(source_zone, shard_ids); } + virtual void wakeup_data_sync_shards(const DoutPrefixProvider *dpp, const rgw_zone_id& source_zone, map >& shard_ids) override { rados->wakeup_data_sync_shards(dpp, source_zone, shard_ids); } virtual int clear_usage(const DoutPrefixProvider *dpp) override { return rados->clear_usage(dpp); } virtual int read_all_usage(const DoutPrefixProvider *dpp, uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries, bool* is_truncated, @@ -437,7 +437,7 @@ class RadosStore : public Store { virtual int trim_all_usage(const DoutPrefixProvider *dpp, uint64_t start_epoch, uint64_t end_epoch) override; virtual int get_config_key_val(std::string name, bufferlist* bl) override; virtual int meta_list_keys_init(const DoutPrefixProvider *dpp, const std::string& section, const std::string& marker, void** phandle) override; - virtual int meta_list_keys_next(void* handle, int max, list& keys, bool* truncated) override; + virtual int meta_list_keys_next(const DoutPrefixProvider *dpp, void* handle, int max, list& keys, bool* truncated) override; virtual void meta_list_keys_complete(void* handle) override; virtual std::string meta_get_marker(void* handle) override; virtual int meta_remove(const DoutPrefixProvider* dpp, std::string& metadata_key, optional_yield y) override; diff --git a/src/rgw/rgw_sync_trace.cc b/src/rgw/rgw_sync_trace.cc index e99fdcf5030c3..c0bf602c740d2 100644 --- a/src/rgw/rgw_sync_trace.cc +++ b/src/rgw/rgw_sync_trace.cc @@ -71,7 +71,7 @@ int RGWSyncTraceServiceMapThread::process(const DoutPrefixProvider *dpp) { map status; status["current_sync"] = manager->get_active_names(); - int ret = store->update_service_map(std::move(status)); + int ret = store->update_service_map(dpp, std::move(status)); if (ret < 0) { ldout(store->ctx(), 0) << "ERROR: update_service_map() returned ret=" << ret << dendl; } diff --git a/src/rgw/rgw_trim_bilog.cc b/src/rgw/rgw_trim_bilog.cc index b31bd94a49f65..0f481a699f97a 100644 --- a/src/rgw/rgw_trim_bilog.cc +++ b/src/rgw/rgw_trim_bilog.cc @@ -673,7 +673,7 @@ int AsyncMetadataList::_send_request(const DoutPrefixProvider *dpp) do { // get the next key and marker - r = mgr->list_keys_next(handle, 1, keys, &truncated); + r = mgr->list_keys_next(dpp, handle, 1, keys, &truncated); if (r < 0) { ldpp_dout(dpp, 10) << "failed to list metadata: " << cpp_strerror(r) << dendl; @@ -711,7 +711,7 @@ int AsyncMetadataList::_send_request(const DoutPrefixProvider *dpp) auto g = make_scope_guard([=] { mgr->list_keys_complete(handle); }); do { // get the next key and marker - r = mgr->list_keys_next(handle, 1, keys, &truncated); + r = mgr->list_keys_next(dpp, handle, 1, keys, &truncated); if (r < 0) { ldpp_dout(dpp, 10) << "failed to list metadata: " << cpp_strerror(r) << dendl; diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc index 88c61bca65adc..9d45170a54c7a 100644 --- a/src/rgw/rgw_user.cc +++ b/src/rgw/rgw_user.cc @@ -2200,7 +2200,7 @@ int RGWUser::list(const DoutPrefixProvider *dpp, RGWUserAdminOpState& op_state, do { std::list keys; left = op_state.max_entries - count; - ret = store->meta_list_keys_next(handle, left, keys, &truncated); + ret = store->meta_list_keys_next(dpp, handle, left, keys, &truncated); if (ret < 0 && ret != -ENOENT) { return ret; } if (ret != -ENOENT) { diff --git a/src/rgw/services/svc_config_key_rados.cc b/src/rgw/services/svc_config_key_rados.cc index 9bb0344af03af..3420e01d7f6bc 100644 --- a/src/rgw/services/svc_config_key_rados.cc +++ b/src/rgw/services/svc_config_key_rados.cc @@ -4,7 +4,7 @@ int RGWSI_ConfigKey_RADOS::do_start(optional_yield, const DoutPrefixProvider *dpp) { - maybe_insecure_mon_conn = !svc.rados->check_secure_mon_conn(); + maybe_insecure_mon_conn = !svc.rados->check_secure_mon_conn(dpp); return 0; } diff --git a/src/rgw/services/svc_meta_be.h b/src/rgw/services/svc_meta_be.h index af749d497f34b..da2bb716df7ac 100644 --- a/src/rgw/services/svc_meta_be.h +++ b/src/rgw/services/svc_meta_be.h @@ -160,7 +160,8 @@ public: optional_yield y) = 0; virtual int list_init(const DoutPrefixProvider *dpp, RGWSI_MetaBackend::Context *ctx, const string& marker) = 0; - virtual int list_next(RGWSI_MetaBackend::Context *ctx, + virtual int list_next(const DoutPrefixProvider *dpp, + RGWSI_MetaBackend::Context *ctx, int max, list *keys, bool *truncated) = 0; virtual int list_get_marker(RGWSI_MetaBackend::Context *ctx, @@ -259,9 +260,9 @@ public: int list_init(const DoutPrefixProvider *dpp, const string& marker) { return be->list_init(dpp, be_ctx, marker); } - int list_next(int max, list *keys, + int list_next(const DoutPrefixProvider *dpp, int max, list *keys, bool *truncated) { - return be->list_next(be_ctx, max, keys, truncated); + return be->list_next(dpp, be_ctx, max, keys, truncated); } int list_get_marker(string *marker) { return be->list_get_marker(be_ctx, marker); diff --git a/src/rgw/services/svc_meta_be_sobj.cc b/src/rgw/services/svc_meta_be_sobj.cc index 253e509ca8e94..88f74472cf6f0 100644 --- a/src/rgw/services/svc_meta_be_sobj.cc +++ b/src/rgw/services/svc_meta_be_sobj.cc @@ -216,7 +216,8 @@ int RGWSI_MetaBackend_SObj::list_init(const DoutPrefixProvider *dpp, return 0; } -int RGWSI_MetaBackend_SObj::list_next(RGWSI_MetaBackend::Context *_ctx, +int RGWSI_MetaBackend_SObj::list_next(const DoutPrefixProvider *dpp, + RGWSI_MetaBackend::Context *_ctx, int max, list *keys, bool *truncated) { @@ -226,7 +227,7 @@ int RGWSI_MetaBackend_SObj::list_next(RGWSI_MetaBackend::Context *_ctx, keys->clear(); - int ret = ctx->list.op->get_next(max, &oids, truncated); + int ret = ctx->list.op->get_next(dpp, max, &oids, truncated); if (ret < 0 && ret != -ENOENT) return ret; if (ret == -ENOENT) { diff --git a/src/rgw/services/svc_meta_be_sobj.h b/src/rgw/services/svc_meta_be_sobj.h index 8c5660a6d54d9..f587fe882bb43 100644 --- a/src/rgw/services/svc_meta_be_sobj.h +++ b/src/rgw/services/svc_meta_be_sobj.h @@ -166,7 +166,8 @@ public: optional_yield y) override; int list_init(const DoutPrefixProvider *dpp, RGWSI_MetaBackend::Context *_ctx, const string& marker) override; - int list_next(RGWSI_MetaBackend::Context *_ctx, + int list_next(const DoutPrefixProvider *dpp, + RGWSI_MetaBackend::Context *_ctx, int max, list *keys, bool *truncated) override; int list_get_marker(RGWSI_MetaBackend::Context *ctx, diff --git a/src/rgw/services/svc_rados.cc b/src/rgw/services/svc_rados.cc index 32a6b3a3e39ad..8bfe5324f5ee7 100644 --- a/src/rgw/services/svc_rados.cc +++ b/src/rgw/services/svc_rados.cc @@ -63,7 +63,8 @@ int RGWSI_RADOS::open_pool_ctx(const DoutPrefixProvider *dpp, const rgw_pool& po params.mostly_omap); } -int RGWSI_RADOS::pool_iterate(librados::IoCtx& io_ctx, +int RGWSI_RADOS::pool_iterate(const DoutPrefixProvider *dpp, + librados::IoCtx& io_ctx, librados::NObjectIterator& iter, uint32_t num, vector& objs, RGWAccessListFilter *filter, @@ -78,7 +79,7 @@ int RGWSI_RADOS::pool_iterate(librados::IoCtx& io_ctx, rgw_bucket_dir_entry e; string oid = iter->get_oid(); - ldout(cct, 20) << "RGWRados::pool_iterate: got " << oid << dendl; + ldpp_dout(dpp, 20) << "RGWRados::pool_iterate: got " << oid << dendl; // fill it in with initial values; we may correct later if (filter && !filter->filter(oid, oid)) @@ -174,29 +175,29 @@ uint64_t RGWSI_RADOS::Obj::get_last_version() return ref.pool.ioctx().get_last_version(); } -int RGWSI_RADOS::Pool::create() +int RGWSI_RADOS::Pool::create(const DoutPrefixProvider *dpp) { librados::Rados *rad = rados_svc->get_rados_handle(); int r = rad->pool_create(pool.name.c_str()); if (r < 0) { - ldout(rados_svc->cct, 0) << "WARNING: pool_create returned " << r << dendl; + ldpp_dout(dpp, 0) << "WARNING: pool_create returned " << r << dendl; return r; } librados::IoCtx io_ctx; r = rad->ioctx_create(pool.name.c_str(), io_ctx); if (r < 0) { - ldout(rados_svc->cct, 0) << "WARNING: ioctx_create returned " << r << dendl; + ldpp_dout(dpp, 0) << "WARNING: ioctx_create returned " << r << dendl; return r; } r = io_ctx.application_enable(pg_pool_t::APPLICATION_NAME_RGW, false); if (r < 0) { - ldout(rados_svc->cct, 0) << "WARNING: application_enable returned " << r << dendl; + ldpp_dout(dpp, 0) << "WARNING: application_enable returned " << r << dendl; return r; } return 0; } -int RGWSI_RADOS::Pool::create(const vector& pools, vector *retcodes) +int RGWSI_RADOS::Pool::create(const DoutPrefixProvider *dpp, const vector& pools, vector *retcodes) { vector completions; vector rets; @@ -222,7 +223,7 @@ int RGWSI_RADOS::Pool::create(const vector& pools, vector *retcod c->wait(); r = c->get_return_value(); if (r < 0) { - ldout(rados_svc->cct, 0) << "WARNING: async pool_create returned " << r << dendl; + ldpp_dout(dpp, 0) << "WARNING: async pool_create returned " << r << dendl; error = true; } } @@ -239,7 +240,7 @@ int RGWSI_RADOS::Pool::create(const vector& pools, vector *retcod io_ctxs.emplace_back(); int ret = rad->ioctx_create(pool.name.c_str(), io_ctxs.back()); if (ret < 0) { - ldout(rados_svc->cct, 0) << "WARNING: ioctx_create returned " << ret << dendl; + ldpp_dout(dpp, 0) << "WARNING: ioctx_create returned " << ret << dendl; error = true; } retcodes->push_back(ret); @@ -265,7 +266,7 @@ int RGWSI_RADOS::Pool::create(const vector& pools, vector *retcod if (ret == -EOPNOTSUPP) { ret = 0; } else if (ret < 0) { - ldout(rados_svc->cct, 0) << "WARNING: async application_enable returned " << ret + ldpp_dout(dpp, 0) << "WARNING: async application_enable returned " << ret << dendl; error = true; } @@ -319,7 +320,8 @@ int RGWSI_RADOS::Pool::List::init(const DoutPrefixProvider *dpp, const string& m return 0; } -int RGWSI_RADOS::Pool::List::get_next(int max, +int RGWSI_RADOS::Pool::List::get_next(const DoutPrefixProvider *dpp, + int max, std::vector *oids, bool *is_truncated) { @@ -327,10 +329,10 @@ int RGWSI_RADOS::Pool::List::get_next(int max, return -EINVAL; } vector objs; - int r = pool->rados_svc->pool_iterate(ctx.ioctx, ctx.iter, max, objs, ctx.filter, is_truncated); + int r = pool->rados_svc->pool_iterate(dpp, ctx.ioctx, ctx.iter, max, objs, ctx.filter, is_truncated); if (r < 0) { if(r != -ENOENT) { - ldout(pool->rados_svc->cct, 10) << "failed to list objects pool_iterate returned r=" << r << dendl; + ldpp_dout(dpp, 10) << "failed to list objects pool_iterate returned r=" << r << dendl; } return r; } @@ -385,7 +387,7 @@ int RGWSI_RADOS::clog_warn(const string& msg) return h.mon_command(cmd, inbl, nullptr, nullptr); } -bool RGWSI_RADOS::check_secure_mon_conn() const +bool RGWSI_RADOS::check_secure_mon_conn(const DoutPrefixProvider *dpp) const { AuthRegistry reg(cct); @@ -395,18 +397,18 @@ bool RGWSI_RADOS::check_secure_mon_conn() const std::vector modes; reg.get_supported_methods(CEPH_ENTITY_TYPE_MON, &methods, &modes); - ldout(cct, 20) << __func__ << "(): auth registy supported: methods=" << methods << " modes=" << modes << dendl; + ldpp_dout(dpp, 20) << __func__ << "(): auth registy supported: methods=" << methods << " modes=" << modes << dendl; for (auto method : methods) { if (!reg.is_secure_method(method)) { - ldout(cct, 20) << __func__ << "(): method " << method << " is insecure" << dendl; + ldpp_dout(dpp, 20) << __func__ << "(): method " << method << " is insecure" << dendl; return false; } } for (auto mode : modes) { if (!reg.is_secure_mode(mode)) { - ldout(cct, 20) << __func__ << "(): mode " << mode << " is insecure" << dendl; + ldpp_dout(dpp, 20) << __func__ << "(): mode " << mode << " is insecure" << dendl; return false; } } diff --git a/src/rgw/services/svc_rados.h b/src/rgw/services/svc_rados.h index 46a7f93f86862..a334d26509d96 100644 --- a/src/rgw/services/svc_rados.h +++ b/src/rgw/services/svc_rados.h @@ -52,7 +52,8 @@ public: private: int open_pool_ctx(const DoutPrefixProvider *dpp, const rgw_pool& pool, librados::IoCtx& io_ctx, const OpenParams& params = {}); - int pool_iterate(librados::IoCtx& ioctx, + int pool_iterate(const DoutPrefixProvider *dpp, + librados::IoCtx& ioctx, librados::NObjectIterator& iter, uint32_t num, vector& objs, RGWAccessListFilter *filter, @@ -67,7 +68,7 @@ public: void shutdown() override; uint64_t instance_id(); - bool check_secure_mon_conn() const; + bool check_secure_mon_conn(const DoutPrefixProvider *dpp) const; RGWAsyncRadosProcessor *get_async_processor() { return async_processor.get(); @@ -97,8 +98,8 @@ public: public: Pool() {} - int create(); - int create(const std::vector& pools, std::vector *retcodes); + int create(const DoutPrefixProvider *dpp); + int create(const DoutPrefixProvider *dpp, const std::vector& pools, std::vector *retcodes); int lookup(); int open(const DoutPrefixProvider *dpp, const OpenParams& params = {}); @@ -124,7 +125,7 @@ public: List(Pool *_pool) : pool(_pool) {} int init(const DoutPrefixProvider *dpp, const string& marker, RGWAccessListFilter *filter = nullptr); - int get_next(int max, + int get_next(const DoutPrefixProvider *dpp, int max, std::vector *oids, bool *is_truncated); diff --git a/src/rgw/services/svc_sys_obj.cc b/src/rgw/services/svc_sys_obj.cc index be30e45c56ccf..f0a18c9ec6902 100644 --- a/src/rgw/services/svc_sys_obj.cc +++ b/src/rgw/services/svc_sys_obj.cc @@ -123,9 +123,9 @@ int RGWSI_SysObj::Pool::Op::init(const DoutPrefixProvider *dpp, const string& ma return source.core_svc->pool_list_objects_init(dpp, source.pool, marker, prefix, &ctx); } -int RGWSI_SysObj::Pool::Op::get_next(int max, vector *oids, bool *is_truncated) +int RGWSI_SysObj::Pool::Op::get_next(const DoutPrefixProvider *dpp, int max, vector *oids, bool *is_truncated) { - return source.core_svc->pool_list_objects_next(ctx, max, oids, is_truncated); + return source.core_svc->pool_list_objects_next(dpp, ctx, max, oids, is_truncated); } int RGWSI_SysObj::Pool::Op::get_marker(string *marker) diff --git a/src/rgw/services/svc_sys_obj.h b/src/rgw/services/svc_sys_obj.h index 48ae302408aac..db2c1fa40c9f4 100644 --- a/src/rgw/services/svc_sys_obj.h +++ b/src/rgw/services/svc_sys_obj.h @@ -231,7 +231,7 @@ public: Op(Pool& _source) : source(_source) {} int init(const DoutPrefixProvider *dpp, const std::string& marker, const std::string& prefix); - int get_next(int max, std::vector *oids, bool *is_truncated); + int get_next(const DoutPrefixProvider *dpp, int max, std::vector *oids, bool *is_truncated); int get_marker(string *marker); }; diff --git a/src/rgw/services/svc_sys_obj_core.cc b/src/rgw/services/svc_sys_obj_core.cc index 2e194dfeeb23b..94467c22ebe68 100644 --- a/src/rgw/services/svc_sys_obj_core.cc +++ b/src/rgw/services/svc_sys_obj_core.cc @@ -658,7 +658,7 @@ int RGWSI_SysObj_Core::pool_list_prefixed_objs(const DoutPrefixProvider *dpp, do { vector oids; #define MAX_OBJS_DEFAULT 1000 - int r = op.get_next(MAX_OBJS_DEFAULT, &oids, &is_truncated); + int r = op.get_next(dpp, MAX_OBJS_DEFAULT, &oids, &is_truncated); if (r < 0) { return r; } @@ -693,7 +693,8 @@ int RGWSI_SysObj_Core::pool_list_objects_init(const DoutPrefixProvider *dpp, return 0; } -int RGWSI_SysObj_Core::pool_list_objects_next(RGWSI_SysObj::Pool::ListCtx& _ctx, +int RGWSI_SysObj_Core::pool_list_objects_next(const DoutPrefixProvider *dpp, + RGWSI_SysObj::Pool::ListCtx& _ctx, int max, vector *oids, bool *is_truncated) @@ -702,10 +703,10 @@ int RGWSI_SysObj_Core::pool_list_objects_next(RGWSI_SysObj::Pool::ListCtx& _ctx, return -EINVAL; } auto& ctx = static_cast(*_ctx.impl); - int r = ctx.op.get_next(max, oids, is_truncated); + int r = ctx.op.get_next(dpp, max, oids, is_truncated); if (r < 0) { if(r != -ENOENT) - ldout(cct, 10) << "failed to list objects pool_iterate returned r=" << r << dendl; + ldpp_dout(dpp, 10) << "failed to list objects pool_iterate returned r=" << r << dendl; return r; } diff --git a/src/rgw/services/svc_sys_obj_core.h b/src/rgw/services/svc_sys_obj_core.h index 52c94051c7188..b8ee00794fc55 100644 --- a/src/rgw/services/svc_sys_obj_core.h +++ b/src/rgw/services/svc_sys_obj_core.h @@ -118,7 +118,8 @@ protected: const std::string& marker, const std::string& prefix, RGWSI_SysObj::Pool::ListCtx *ctx); - virtual int pool_list_objects_next(RGWSI_SysObj::Pool::ListCtx& ctx, + virtual int pool_list_objects_next(const DoutPrefixProvider *dpp, + RGWSI_SysObj::Pool::ListCtx& ctx, int max, vector *oids, bool *is_truncated); diff --git a/src/rgw/services/svc_zone.cc b/src/rgw/services/svc_zone.cc index a9448b90cf2ba..76759afbc0944 100644 --- a/src/rgw/services/svc_zone.cc +++ b/src/rgw/services/svc_zone.cc @@ -1170,7 +1170,7 @@ read_omap: pools.push_back(rgw_pool(s)); vector retcodes; bufferlist bl; - ret = rados_svc->pool().create(pools, &retcodes); + ret = rados_svc->pool().create(dpp, pools, &retcodes); if (ret < 0) return ret; ret = sysobj.omap().set(dpp, s, bl, y); diff --git a/src/test/rgw/test_rgw_throttle.cc b/src/test/rgw/test_rgw_throttle.cc index 109dd10061954..e58ab365ddc63 100644 --- a/src/test/rgw/test_rgw_throttle.cc +++ b/src/test/rgw/test_rgw_throttle.cc @@ -31,7 +31,7 @@ struct RadosEnv : public ::testing::Environment { rados.emplace(g_ceph_context); const NoDoutPrefix no_dpp(g_ceph_context, 1); ASSERT_EQ(0, rados->start(null_yield, &no_dpp)); - int r = rados->pool({poolname}).create(); + int r = rados->pool({poolname}).create(&no_dpp); if (r == -EEXIST) r = 0; ASSERT_EQ(0, r); -- 2.39.5