]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/memstore: Fix memory leak 50092/head
authorAdam Kupczyk <akupczyk@redhat.com>
Thu, 2 Jun 2022 16:53:01 +0000 (16:53 +0000)
committerLucian Petrut <lpetrut@cloudbasesolutions.com>
Mon, 13 Feb 2023 10:12:38 +0000 (10:12 +0000)
There was a permanent memory leak, objects were never deleted.
ObjectRef x(new Bufferlist()) created RefCountedObject with nref=2 (one for new, one for ref).
ObjectRef x = make_ref<Bufferlist>() just makes one.

Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
(cherry picked from commit 5ae5b73e76bf28edff3bf32c7805224b31c4772b)

src/os/memstore/MemStore.cc

index dc29ab1b6fde88f6458c97003fc8cf73d60f93a6..bac863343f20b00be5532065d09e76dffcf43978 100644 (file)
@@ -1796,5 +1796,5 @@ int MemStore::PageSetObject::truncate(uint64_t size)
 MemStore::ObjectRef MemStore::Collection::create_object() const {
   if (use_page_set)
     return ceph::make_ref<PageSetObject>(cct->_conf->memstore_page_size);
-  return new BufferlistObject();
+  return make_ref<BufferlistObject>();
 }