Project

General

Profile

Actions

Bug #39141

closed

sync_user failed

Added by jacky ding about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
% Done:

0%

Source:
Community (user)
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rgw
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

I am running ceph version 10.2.10.after i create a user,rgw print logs below:
0 ERROR: can't read user header: ret=-2
0 ERROR: sync_user() failed, user=testuser ret=-2

This bug has been reported 2 years ago and merged to master branch:
https://tracker.ceph.com/issues/18921
https://github.com/ceph/ceph/pull/13408

The solution is to change the log level for 0 to 5.But i found a logical error:

rgw_user.cc RGWUserMetadataHandler::list_keys_next
...
if (k.find(".buckets") == string::npos) {
keys.push_back(k);
}
...

This function filter object which name doesn't contain ".buckets"

BUT:
rgw_quota.cc RGWUserStatsCache::sync_user()
--store->cls_user_get_header()
----rgw_get_buckets_obj() {
buckets_obj_id = user_id.to_str();
buckets_obj_id += RGW_BUCKETS_OBJ_SUFFIX;
}
this function append a suffix ".buckets" to oid

So sync_user() always return error.

This is a logical error!!!

Actions

Also available in: Atom PDF