From 76609f0ed23fa28ce01c2143c3b0bf3f10c9a7f5 Mon Sep 17 00:00:00 2001 From: Adam Kupczyk Date: Thu, 2 Jun 2022 16:53:01 +0000 Subject: [PATCH] os/memstore: Fix memory leak 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() just makes one. Signed-off-by: Adam Kupczyk (cherry picked from commit 5ae5b73e76bf28edff3bf32c7805224b31c4772b) --- src/os/memstore/MemStore.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/os/memstore/MemStore.cc b/src/os/memstore/MemStore.cc index 5609db360c7..e0a607270d1 100644 --- a/src/os/memstore/MemStore.cc +++ b/src/os/memstore/MemStore.cc @@ -1820,5 +1820,5 @@ int MemStore::PageSetObject::truncate(uint64_t size) MemStore::ObjectRef MemStore::Collection::create_object() const { if (use_page_set) return ceph::make_ref(cct->_conf->memstore_page_size); - return new BufferlistObject(); + return make_ref(); } -- 2.47.3