Project

General

Profile

Actions

Bug #22410

closed

rgw: chained cache size is growing above rgw_cache_lru_size limit

Added by Mark Kogan over 6 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
jewel luminous
Regression:
No
Severity:
2 - major
Reviewed:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Details and analysis:

valgrind massif shown the following information:

--------------------------------------------------------------------------------              
  n        time(i)         total(B)   useful-heap(B) extra-heap(B)    stacks(B)               
--------------------------------------------------------------------------------              
 65 4,708,134,638,372    2,339,301,056    2,141,918,346   197,382,710            0            
91.56% (2,141,918,346B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.       
->37.62% (880,128,000B) 0x4A439E: RGWChainedCacheImpl<bucket_info_entry>::chain_cb(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*) (new_alloca
| ->37.62% (880,128,000B) 0x5C13DF: ObjectCache::chain_cache_entry(std::__cxx11::list<rgw_cache_entry_info*, std::allocator<rgw_cache_entry_info*> >&, RGWChainedCache::Entry*) (rgw_cache.cc
|   ->37.62% (880,128,000B) 0x4486DC: RGWRados::get_bucket_info(RGWObjectCtx&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_st...

Added a log in chain_cb(() (rgw_rados.h)

void chain_cb(const string& key, void *data) override {
    T *entry = static_cast<T *>(data);
    RWLock::WLocker wl(lock);

    lsubdout(g_ceph_context, rgw, 10)
        << "#DEBUG# " << __func__ << " key='" << key << "' entries.size()=" << entries.size() << dendl;

    entries[key].first = *entry;
    if (expiry.count() > 0) {
      entries[key].second = ceph::coarse_mono_clock::now();
    }
  }

And saw that the entries.size() was increasing above _conf->rgw_cache_lru_size (10000)

2017-12-12 03:38:46.426 4a5d1700 10 #DEBUG# chain_cb key='mycontainers754053' entries.size()=754053


Related issues 2 (0 open2 closed)

Copied to rgw - Backport #22583: luminous: rgw: chained cache size is growing above rgw_cache_lru_size limitResolvedMatt BenjaminActions
Copied to rgw - Backport #22584: jewel: rgw: chained cache size is growing above rgw_cache_lru_size limitResolvedAdam EmersonActions
Actions

Also available in: Atom PDF