Project

General

Profile

Bug #39141

sync_user failed

Added by jacky ding 5 months ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
Start date:
04/08/2019
Due date:
04/12/2019
% Done:

0%

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

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!!!

History

#3 Updated by Casey Bodley 5 months ago

  • Status changed from New to Closed

these error messages don't indicate an actual failure; it's just recognizing that a new user does not have any buckets yet to aggregate the stats for. this was fixed by raising the log levels, but wasn't backported to the jewel release because it's no longer supported

Also available in: Atom PDF