]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Fix bugs with sizes management
authortridao <daominhtri0503@gmail.com>
Mon, 26 Jun 2023 15:27:37 +0000 (12:27 -0300)
committertridao <daominhtri0503@gmail.com>
Mon, 26 Jun 2023 15:29:25 +0000 (12:29 -0300)
Syntax error in assert missed this

Signed-off-by: Tri Dao <daominhtri0503@gmail.com>
src/test/objectstore/ObjectStoreImitator.cc
src/test/objectstore/ObjectStoreImitator.h

index 204acf6c53347e3e5bdc8e598a8debd76e6aa1e2..7080cf0cdfaf56868702e8c9ece2ca49a12d78f5 100644 (file)
@@ -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);
 }
 
index e134fc4be0080181eede3b9994dfdc893bfae0f7..10e6953a3795827c113665ce088f36b731f5d67c 100644 (file)
@@ -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<Object> ObjectRef;
@@ -250,7 +252,9 @@ private:
   ceph::shared_mutex coll_lock =
       ceph::make_shared_mutex("FragmentationSimulator::coll_lock");
   std::unordered_map<coll_t, CollectionRef> coll_map;
-  std::unordered_map<coll_t, CollectionRef> new_coll_map;
+  std::unordered_map<coll_t, CollectionRef>
+      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_,