Skip to content

Instantly share code, notes, and snippets.

@cupnes
Created August 19, 2021 08:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cupnes/f2f9414d94b22b92ebde1ca114c7ad2d to your computer and use it in GitHub Desktop.
Save cupnes/f2f9414d94b22b92ebde1ca114c7ad2d to your computer and use it in GitHub Desktop.
radosgw-admin bucket check時に十分なログを出すようにソースコードを改修
diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc
index 50b4d9e4132..37335409197 100644
--- a/src/rgw/rgw_bucket.cc
+++ b/src/rgw/rgw_bucket.cc
@@ -504,8 +504,12 @@ int rgw_remove_bucket_bypass_gc(rgw::sal::RGWRadosStore *store, rgw_bucket& buck
static void set_err_msg(std::string *sink, std::string msg)
{
- if (sink && !msg.empty())
+ if (msg.empty())
+ return;
+ if (sink)
*sink = msg;
+ else
+ cerr << msg << std::endl;
}
int RGWBucket::init(rgw::sal::RGWRadosStore *storage, RGWBucketAdminOpState& op_state,
@@ -857,8 +861,7 @@ int RGWBucket::check_bad_index_multipart(RGWBucketAdminOpState& op_state,
int r = list_op.list_objects(listing_max_entries, &result,
&common_prefixes, &is_truncated, null_yield);
if (r < 0) {
- set_err_msg(err_msg, "failed to list objects in bucket=" + bucket.name +
- " err=" + cpp_strerror(-r));
+ cerr << "failed to list objects in bucket=" << bucket.name << " err=" << cpp_strerror(-r) << std::endl;
return r;
}
@@ -897,14 +900,16 @@ int RGWBucket::check_bad_index_multipart(RGWBucketAdminOpState& op_state,
if (meta_objs.find(name) == meta_objs.end()) {
objs_to_unlink.push_back(aiter->first);
+ rgw_obj log_obj(bucket, aiter->first);
+ cerr << "[bucket=" << bucket.name << "] objs_to_unlink.push_back(" << log_obj.get_oid() << ")" << std::endl;
}
if (objs_to_unlink.size() > listing_max_entries) {
if (fix_index) {
+ cerr << "start(p1) remove_objs_from_index()" << std::endl;
int r = store->getRados()->remove_objs_from_index(bucket_info, objs_to_unlink);
if (r < 0) {
- set_err_msg(err_msg, "ERROR: remove_obj_from_index() returned error: " +
- cpp_strerror(-r));
+ cerr << "ERROR: remove_obj_from_index() returned error: " << cpp_strerror(-r) << std::endl;
return r;
}
}
@@ -916,10 +921,10 @@ int RGWBucket::check_bad_index_multipart(RGWBucketAdminOpState& op_state,
}
if (fix_index) {
+ cerr << "start(p2) remove_objs_from_index()" << std::endl;
int r = store->getRados()->remove_objs_from_index(bucket_info, objs_to_unlink);
if (r < 0) {
- set_err_msg(err_msg, "ERROR: remove_obj_from_index() returned error: " +
- cpp_strerror(-r));
+ cerr << "ERROR: remove_obj_from_index() returned error: " << cpp_strerror(-r) << std::endl;
return r;
}
@@ -997,16 +1002,18 @@ int RGWBucket::check_index(RGWBucketAdminOpState& op_state,
{
bool fix_index = op_state.will_fix_index();
+ cerr << "start bucket_check_index()" << std::endl;
int r = store->getRados()->bucket_check_index(bucket_info, &existing_stats, &calculated_stats);
if (r < 0) {
- set_err_msg(err_msg, "failed to check index error=" + cpp_strerror(-r));
+ cerr << "failed to check index error=" << cpp_strerror(-r) << std::endl;
return r;
}
if (fix_index) {
+ cerr << "start bucket_rebuild_index()" << std::endl;
r = store->getRados()->bucket_rebuild_index(bucket_info);
if (r < 0) {
- set_err_msg(err_msg, "failed to rebuild index err=" + cpp_strerror(-r));
+ cerr << "failed to rebuild index err=" << cpp_strerror(-r) << std::endl;
return r;
}
}
@@ -3323,4 +3330,3 @@ RGWBucketInstanceMetadataHandlerBase *RGWArchiveBucketInstanceMetaHandlerAllocat
{
return new RGWArchiveBucketInstanceMetadataHandler();
}
-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment