From: tridao Date: Mon, 26 Jun 2023 15:27:37 +0000 (-0300) Subject: Fix bugs with sizes management X-Git-Tag: v19.0.0~874^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7c1832c9096032b370402998d0fed0349c7ec714;p=ceph.git Fix bugs with sizes management Syntax error in assert missed this Signed-off-by: Tri Dao --- diff --git a/src/test/objectstore/ObjectStoreImitator.cc b/src/test/objectstore/ObjectStoreImitator.cc index 204acf6c5334..7080cf0cdfaf 100644 --- a/src/test/objectstore/ObjectStoreImitator.cc +++ b/src/test/objectstore/ObjectStoreImitator.cc @@ -461,10 +461,10 @@ void ObjectStoreImitator::_do_truncate(CollectionRef &c, ObjectRef &o, uint64_t offset) { if (offset == o->size) return; - o->size = offset; PExtentVector old_extents; o->punch_hole(offset, o->size - offset, old_extents); + o->size = offset; alloc->release(old_extents); } diff --git a/src/test/objectstore/ObjectStoreImitator.h b/src/test/objectstore/ObjectStoreImitator.h index e134fc4be008..10e6953a3795 100644 --- a/src/test/objectstore/ObjectStoreImitator.h +++ b/src/test/objectstore/ObjectStoreImitator.h @@ -82,6 +82,7 @@ private: l_offset += e.length; } + size -= punched_length; extents = remains; old_extents = to_be_punched; } @@ -89,6 +90,7 @@ private: void append(PExtentVector &ext) { for (auto &e : ext) { extents.push_back(e); + size += e.length; } std::sort(extents.begin(), extents.end(), @@ -105,7 +107,7 @@ private: total += e.length; } - ceph_assert(total = size); + ceph_assert(total == size); } }; typedef boost::intrusive_ptr ObjectRef; @@ -250,7 +252,9 @@ private: ceph::shared_mutex coll_lock = ceph::make_shared_mutex("FragmentationSimulator::coll_lock"); std::unordered_map coll_map; - std::unordered_map new_coll_map; + std::unordered_map + new_coll_map; // store collections that is opened via open_new_collection + // but a create txn has not executed public: ObjectStoreImitator(CephContext *cct, const std::string &path_,