New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rgw: honor the tenant part of rgw_bucket during comparisons. #16796
Conversation
Tempest hasn't found any regression here (tested with multi-tenant Swift API aka |
Stuffing
template<class T>
int RGWQuotaCache<T>::get_stats(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats, RGWQuotaInfo& quota) {
RGWQuotaCacheStats qs;
utime_t now = ceph_clock_now();
if (map_find(user, bucket, qs)) {
if (qs.async_refresh_time.sec() > 0 && now >= qs.async_refresh_time) {
int r = async_refresh(user, bucket, qs);
if (r < 0) {
ldout(store->ctx(), 0) << "ERROR: quota async refresh returned ret=" << r << dendl;
/* continue processing, might be a transient error, async refresh is just optimization */
}
}
if (can_use_cached_stats(quota, qs.stats) && qs.expiration >
ceph_clock_now()) {
stats = qs.stats;
return 0;
}
}
int ret = fetch_stats_from_storage(user, bucket, stats);
if (ret < 0 && ret != -ENOENT)
return ret;
set_stats(user, bucket, qs, stats);
return 0;
} Similar experiment for
|
Jenkins retest this please ( |
test this please |
Yet another failure in the unrelated |
Fixes: http://tracker.ceph.com/issues/20897 Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
06cd02f
to
89c0eb7
Compare
Trivially rebased. Absolutely no other changes here. |
Fixes: http://tracker.ceph.com/issues/20897
Signed-off-by: Radoslaw Zarzynski rzarzyns@redhat.com