]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/onode-staged-tree: fix non-debug build warning
authorYingxin Cheng <yingxin.cheng@intel.com>
Thu, 15 Oct 2020 05:06:27 +0000 (13:06 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Tue, 1 Dec 2020 04:50:54 +0000 (12:50 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
14 files changed:
src/crimson/os/seastore/onode_manager/staged-fltree/node.cc
src/crimson/os/seastore/onode_manager/staged-fltree/node.h
src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/dummy.h
src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h
src/crimson/os/seastore/onode_manager/staged-fltree/node_impl.cc
src/crimson/os/seastore/onode_manager/staged-fltree/node_impl.h
src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.cc
src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/node_stage_layout.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h
src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage_types.h
src/crimson/os/seastore/onode_manager/staged-fltree/super.h
src/test/crimson/seastore/onode_tree/test_staged_fltree.cc

index a8ed7ab5b667329e458804c99c3ca7be68f243bc..db729bd920e6c591d898fda4cf5fa943829221c2 100644 (file)
@@ -258,7 +258,7 @@ node_future<Ref<Node>> Node::load(
       auto impl = InternalNodeImpl::load(extent, *field_type, expect_is_level_tail);
       return Ref<Node>(new InternalNode(impl.get(), std::move(impl)));
     } else {
-      assert(false && "impossible path");
+      ceph_abort("impossible path");
     }
   });
 }
@@ -298,8 +298,8 @@ node_future<> InternalNode::apply_child_split(
   auto free_size = impl->free_size();
   if (free_size >= insert_size) {
     // insert
-    auto p_value = impl->insert(left_key, left_child_addr_packed,
-                                insert_pos, insert_stage, insert_size);
+    [[maybe_unused]] auto p_value = impl->insert(
+        left_key, left_child_addr_packed, insert_pos, insert_stage, insert_size);
     assert(impl->free_size() == free_size - insert_size);
     assert(insert_pos <= pos);
     assert(p_value->value == left_child_addr);
index c36b0ed85119072c91bb6de880b52a6eb1ccdba2..67f101fa92353d919f74f4a5d2fb46196bd1532b 100644 (file)
@@ -126,7 +126,7 @@ class Node
 
  protected:
   virtual node_future<> test_clone_non_root(context_t, Ref<InternalNode>) const {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   virtual node_future<search_result_t> lower_bound_tracked(
       context_t, const key_hobj_t&, MatchHistory&) = 0;
@@ -203,7 +203,7 @@ class InternalNode final : public Node {
   void do_untrack_child(const Node& child) {
     auto& child_pos = child.parent_info().position;
     assert(tracked_child_nodes.find(child_pos)->second == &child);
-    auto removed = tracked_child_nodes.erase(child_pos);
+    [[maybe_unused]] auto removed = tracked_child_nodes.erase(child_pos);
     assert(removed);
   }
 
@@ -279,7 +279,7 @@ class LeafNode final : public Node {
     validate_cursor(cursor);
     auto& cursor_pos = cursor.get_position();
     assert(tracked_cursors.find(cursor_pos)->second == &cursor);
-    auto removed = tracked_cursors.erase(cursor_pos);
+    [[maybe_unused]] auto removed = tracked_cursors.erase(cursor_pos);
     assert(removed);
   }
 
index f54db62c018d2419aaa20ded35961f9c69fa7895..f77335d31bcb383f9854b53c432831759525a88a 100644 (file)
@@ -39,15 +39,15 @@ class DummyNodeExtent final: public NodeExtent {
   ~DummyNodeExtent() override = default;
  protected:
   NodeExtentRef mutate(context_t) override {
-    assert(false && "impossible path"); }
+    ceph_abort("impossible path"); }
   CachedExtentRef duplicate_for_write() override {
-    assert(false && "impossible path"); }
+    ceph_abort("impossible path"); }
   extent_types_t get_type() const override {
-    assert(false && "impossible path"); }
+    ceph_abort("impossible path"); }
   ceph::bufferlist get_delta() override {
-    assert(false && "impossible path"); }
+    ceph_abort("impossible path"); }
   void apply_delta(const ceph::bufferlist&) override {
-    assert(false && "impossible path"); }
+    ceph_abort("impossible path"); }
 };
 
 template <bool SYNC>
index 38a0afd222afebc18cc9259297cdadc75e920ed1..1ec2e75e8fbc17802c4e479a8b69359afca97ee8 100644 (file)
@@ -44,11 +44,11 @@ class SeastoreNodeExtent final: public NodeExtent {
   }
   ceph::bufferlist get_delta() override {
     //TODO
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   }
   void apply_delta(const ceph::bufferlist&) override {
     //TODO
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   }
  private:
   static seastar::logger& logger() {
index f455f3d6a82ccacf27307b1635f9b6e1793dfb04..e64ef91d8b84e0cf5957ab7097409e23a1420424 100644 (file)
@@ -23,7 +23,7 @@ InternalNodeImpl::allocate(
   } else if (type == field_type_t::N3) {
     return InternalNode3::allocate(c, is_level_tail, level);
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 }
 
@@ -39,7 +39,7 @@ LeafNodeImpl::allocate(
   } else if (type == field_type_t::N3) {
     return LeafNode3::allocate(c, is_level_tail, 0);
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 }
 
@@ -54,7 +54,7 @@ InternalNodeImplURef InternalNodeImpl::load(
   } else if (type == field_type_t::N3) {
     return InternalNode3::load(extent, expect_is_level_tail);
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 }
 
@@ -69,7 +69,7 @@ LeafNodeImplURef LeafNodeImpl::load(
   } else if (type == field_type_t::N3) {
     return LeafNode3::load(extent, expect_is_level_tail);
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 }
 
index 0aeaa49352f864df0d982ea4069d9230edcdf694..500f184e4fd02c7ae95e3b5c642fcca027f52946 100644 (file)
@@ -92,24 +92,24 @@ class InternalNodeImpl : public NodeImpl {
   virtual const laddr_packed_t* get_p_value(
       const search_position_t&,
       key_view_t* = nullptr, internal_marker_t = {}) const {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   #pragma GCC diagnostic ignored "-Woverloaded-virtual"
   virtual lookup_result_t<node_type_t::INTERNAL> lower_bound(
       const key_hobj_t&, MatchHistory&,
       key_view_t* = nullptr, internal_marker_t = {}) const {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   #pragma GCC diagnostic ignored "-Woverloaded-virtual"
   virtual const laddr_packed_t* insert(
       const key_view_t&, const laddr_packed_t&, search_position_t&, match_stage_t&, node_offset_t&) {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   #pragma GCC diagnostic ignored "-Woverloaded-virtual"
   virtual std::tuple<search_position_t, bool, const laddr_packed_t*> split_insert(
       NodeExtentMutable&, NodeImpl&, const key_view_t&, const laddr_packed_t&,
       search_position_t&, match_stage_t&, node_offset_t&) {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 
   virtual void replace_child_addr(const search_position_t&, laddr_t dst, laddr_t src) = 0;
@@ -139,24 +139,24 @@ class LeafNodeImpl : public NodeImpl {
   virtual const onode_t* get_p_value(
       const search_position_t&,
       key_view_t* = nullptr, leaf_marker_t={}) const {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   #pragma GCC diagnostic ignored "-Woverloaded-virtual"
   virtual lookup_result_t<node_type_t::LEAF> lower_bound(
       const key_hobj_t&, MatchHistory&,
       key_view_t* = nullptr, leaf_marker_t = {}) const {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   #pragma GCC diagnostic ignored "-Woverloaded-virtual"
   virtual const onode_t* insert(
       const key_hobj_t&, const onode_t&, search_position_t&, match_stage_t&, node_offset_t&) {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   #pragma GCC diagnostic ignored "-Woverloaded-virtual"
   virtual std::tuple<search_position_t, bool, const onode_t*> split_insert(
       NodeExtentMutable&, NodeImpl&, const key_hobj_t&, const onode_t&,
       search_position_t&, match_stage_t&, node_offset_t&) {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 
   virtual void get_largest_slot(
index 1d78c73a57e735fc41baa900c5357a7236b98af4..f28680a67ace7cd4c66ab5c76486c38a6f97bb8f 100644 (file)
@@ -438,7 +438,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl {
                      insert_pos, insert_stage);
       // right node: append [insert_pos(key, value)]
       bool is_front_insert = (insert_pos == position_t::begin());
-      bool is_end = STAGE_T::template append_insert<KEY_TYPE>(
+      [[maybe_unused]] bool is_end = STAGE_T::template append_insert<KEY_TYPE>(
           key, value, append_at, right_appender,
           is_front_insert, insert_stage, p_value);
       assert(append_at.is_end() == is_end);
@@ -521,7 +521,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl {
       assert(p_value->value == src);
       extent.update_child_addr_replayable(dst, const_cast<laddr_packed_t*>(p_value));
     } else {
-      assert(false && "impossible path");
+      ceph_abort("impossible path");
     }
   }
 
@@ -543,7 +543,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl {
       }
       return {insert_stage, insert_size};
     } else {
-      assert(false && "impossible path");
+      ceph_abort("impossible path");
     }
   }
 
@@ -556,7 +556,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl {
       STAGE_T::template lookup_largest_slot<true, true, true>(
           extent.read(), &cast_down_fill_0<STAGE>(pos), &index_key, pp_value);
     } else {
-      assert(false && "impossible path");
+      ceph_abort("impossible path");
     }
   }
 
@@ -573,7 +573,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl {
             key, value, history, mstat, cast_down<STAGE>(insert_pos));
       }
     } else {
-      assert(false && "impossible path");
+      ceph_abort("impossible path");
     }
   }
 
index 817df33cd0c16b6727de45a32b9647234900a35b..4b7d3170f11770bfc918b3d27e1abd2a0b60dcca 100644 (file)
@@ -46,14 +46,14 @@ node_offset_t NODE_T::size_to_nxt_at(size_t index) const {
     auto p_end = p_start() + p_fields->get_item_end_offset(index);
     return FieldType::estimate_insert_one() + ns_oid_view_t(p_end).size();
   } else {
-    assert(false && "N3 node is not nested");
+    ceph_abort("N3 node is not nested");
   }
 }
 
 template <typename FieldType, node_type_t NODE_TYPE>
 memory_range_t NODE_T::get_nxt_container(size_t index) const {
   if constexpr (std::is_same_v<FieldType, internal_fields_3_t>) {
-    assert(false && "N3 internal node doesn't have the right part");
+    ceph_abort("N3 internal node doesn't have the right part");
   } else {
     node_offset_t item_start_offset = p_fields->get_item_start_offset(index);
     node_offset_t item_end_offset = p_fields->get_item_end_offset(index);
@@ -107,9 +107,9 @@ memory_range_t NODE_T::insert_prefix_at(
                        -(int)size_right);
     return {p_insert_front, p_insert};
   } else if constexpr (FIELD_TYPE == field_type_t::N2) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   } else {
-    assert(false && "impossible");
+    ceph_abort("impossible");
   }
 }
 #define IPA_TEMPLATE(FT, NT, KT)                                         \
@@ -146,7 +146,7 @@ node_offset_t NODE_T::trim_until(
     return 0;
   }
   if constexpr (std::is_same_v<FieldType, internal_fields_3_t>) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   } else {
     mut.copy_in_absolute(
         (void*)&node.p_fields->num_keys, num_keys_t(index));
@@ -160,10 +160,9 @@ node_offset_t NODE_T::trim_at(
     NodeExtentMutable& mut, const node_extent_t& node,
     size_t index, node_offset_t trimmed) {
   assert(!node.is_level_tail());
-  auto keys = node.keys();
-  assert(index < keys);
+  assert(index < node.keys());
   if constexpr (std::is_same_v<FieldType, internal_fields_3_t>) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   } else {
     node_offset_t offset = node.p_fields->get_item_start_offset(index);
     size_t new_offset = offset + trimmed;
@@ -212,7 +211,7 @@ void APPEND_T::append(const node_extent_t& src, size_t from, size_t items) {
   assert(from + items <= src.keys());
   num_keys += items;
   if constexpr (std::is_same_v<FieldType, internal_fields_3_t>) {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   } else {
     // append left part forwards
     node_offset_t offset_left_start = src.fields().get_key_start_offset(from);
@@ -261,9 +260,9 @@ template <KeyT KT>
 void APPEND_T::append(
     const full_key_t<KT>& key, const value_t& value, const value_t*& p_value) {
   if constexpr (FIELD_TYPE == field_type_t::N3) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   } else {
-    assert(false && "should not happen");
+    ceph_abort("should not happen");
   }
 }
 
@@ -277,7 +276,7 @@ APPEND_T::open_nxt(const key_get_type& partial_key) {
   } else if constexpr (FIELD_TYPE == field_type_t::N2) {
     FieldType::append_key(*p_mut, partial_key, p_append_right);
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   return {p_mut, p_append_right};
 }
@@ -292,7 +291,7 @@ APPEND_T::open_nxt(const full_key_t<KT>& key) {
   } else if constexpr (FIELD_TYPE == field_type_t::N2) {
     FieldType::template append_key<KT>(*p_mut, key, p_append_right);
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
   return {p_mut, p_append_right};
 }
index edb2b1872be42902e1aff45cda22c2d90e04b666..b976b38f82848fcb75f371c2ea2f1c35b1c58a24 100644 (file)
@@ -132,9 +132,9 @@ class node_extent_t {
       const full_key_t<KT>& key, const value_t& value,
       size_t index, node_offset_t size, const char* p_left_bound) {
     if constexpr (FIELD_TYPE == field_type_t::N3) {
-      assert(false && "not implemented");
+      ceph_abort("not implemented");
     } else {
-      assert(false && "impossible");
+      ceph_abort("impossible");
     }
   }
 
@@ -188,7 +188,7 @@ class node_extent_t<FieldType, NODE_TYPE>::Appender {
       FieldType::append_offset(*p_mut, p_append - p_start, p_append_left);
       ++num_keys;
     } else {
-      assert(false);
+      ceph_abort("not implemented");
     }
   }
 
index 14f95601a20775580dc4396a81ffb252676fb12b..f25a92b796fe1e1fed1b55cdedd092107420c61f 100644 (file)
@@ -261,11 +261,11 @@ struct node_fields_2_t {
   static void insert_at(
       NodeExtentMutable& mut, const full_key_t<KT>& key,
       const node_fields_2_t& node, size_t index, node_offset_t size_right) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   }
   static void update_size_at(
       NodeExtentMutable& mut, const node_fields_2_t& node, size_t index, int change) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   }
   static void append_key(
       NodeExtentMutable& mut, const key_t& key, char*& p_append) {
@@ -314,8 +314,7 @@ struct _internal_fields_3_t {
   std::enable_if_t<NODE_TYPE == node_type_t::INTERNAL, node_offset_t>
   free_size_before(size_t index) const {
     assert(index <= num_keys);
-    auto allowed_num_keys = is_level_tail() ? MAX_NUM_KEYS - 1 : MAX_NUM_KEYS;
-    assert(num_keys <= allowed_num_keys);
+    assert(num_keys <= (is_level_tail() ? MAX_NUM_KEYS - 1 : MAX_NUM_KEYS));
     auto free = (MAX_NUM_KEYS - index) * (sizeof(snap_gen_t) + sizeof(laddr_t));
     if (is_level_tail() && index == num_keys) {
       free -= (sizeof(snap_gen_t) + sizeof(laddr_t));
@@ -367,11 +366,11 @@ struct _internal_fields_3_t {
   static void insert_at(
       NodeExtentMutable& mut, const full_key_t<KT>& key,
       const me_t& node, size_t index, node_offset_t size_right) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   }
   static void update_size_at(
       NodeExtentMutable& mut, const me_t& node, size_t index, int change) {
-    assert(false && "not implemented");
+    ceph_abort("not implemented");
   }
 
   node_header_t header;
index cb19b702584871555f67fe6dac5e2ac6d490b935..e39dbb9c46a7dece603987a7804e51cada582802 100644 (file)
@@ -107,7 +107,7 @@ inline void assert_mstat(
     }
     break;
    default:
-    assert(false);
+    ceph_abort("impossible path");
   }
   // key == index ...
   switch (mstat) {
@@ -1020,8 +1020,7 @@ struct staged {
       auto match = compare_to<KeyT::VIEW>(key, iter.get_key());
       if (match == MatchKindCMP::EQ) {
         if constexpr (IS_BOTTOM) {
-          // ceph_abort?
-          assert(false && "insert conflict at current index!");
+          ceph_abort("insert conflict at current index!");
         } else {
           // insert into the current index
           auto nxt_container = iter.get_nxt_container();
@@ -1051,7 +1050,7 @@ struct staged {
       assert(match == MatchKindCMP::EQ);
       if constexpr (IS_BOTTOM) {
         // ceph_abort?
-        assert(false && "insert conflict at the previous index!");
+        ceph_abort("insert conflict at the previous index!");
       } else {
         // insert into the previous index
         auto nxt_container = iter.get_nxt_container();
@@ -1072,7 +1071,7 @@ struct staged {
       return true;
     } else {
       if constexpr (IS_BOTTOM) {
-        assert(false && "impossible");
+        ceph_abort("impossible path");
       } else {
         assert(stage < STAGE);
         bool compensate = NXT_STAGE_T::
@@ -1134,7 +1133,7 @@ struct staged {
         assert(insert_stage <= STAGE && "incompatible insert");
       } else {
         assert(insert_stage <= STAGE && "impossible insert stage");
-        bool ret = compensate_insert_position_at(insert_stage, position);
+        [[maybe_unused]] bool ret = compensate_insert_position_at(insert_stage, position);
         assert(!ret);
       }
     }
@@ -1157,7 +1156,7 @@ struct staged {
     StagedAppender<KT> appender;
     appender.init(&mut, p_insert);
     appender.append(key, value, p_value);
-    const char* p_insert_front = appender.wrap();
+    [[maybe_unused]] const char* p_insert_front = appender.wrap();
     assert(p_insert_front == range.p_start);
     return p_value;
   }
@@ -1226,7 +1225,7 @@ struct staged {
         iter.update_size(mut, _insert_size);
         return p_value;
       } else {
-        assert(false && "impossible path");
+        ceph_abort("impossible path");
       }
     }
   }
@@ -1247,7 +1246,7 @@ struct staged {
         stage = STAGE;
         _insert_size = insert_size<KT>(key, value);
       } else {
-        assert(false && "impossible path");
+        ceph_abort("impossible path");
       }
       if constexpr (IS_BOTTOM) {
         return container_t::template insert_at<KT>(
@@ -1428,14 +1427,14 @@ struct staged {
         }
         return this->_nxt;
       } else {
-        assert(false);
+        ceph_abort("impossible path");
       }
     }
     typename NXT_STAGE_T::StagedIterator& get_nxt() {
       if constexpr (!IS_BOTTOM) {
         return this->_nxt;
       } else {
-        assert(false);
+        ceph_abort("impossible path");
       }
     }
     StagedIterator& operator++() {
@@ -1695,7 +1694,7 @@ struct staged {
           return false;
         }
       } else {
-        assert(false && "impossible path");
+        ceph_abort("impossible path");
         return false;;
       }
     }
@@ -1787,7 +1786,7 @@ struct staged {
         this->_nxt.init(p_mut, p_append);
         return this->_nxt;
       } else {
-        assert(false);
+        ceph_abort("impossible path");
       }
     }
     typename NXT_STAGE_T::template StagedAppender<KT>&
@@ -1799,7 +1798,7 @@ struct staged {
         this->_nxt.init(p_mut, p_append);
         return this->_nxt;
       } else {
-        assert(false);
+        ceph_abort("impossible path");
       }
     }
     typename NXT_STAGE_T::template StagedAppender<KT>& get_nxt() {
@@ -1807,7 +1806,7 @@ struct staged {
         assert(require_wrap_nxt);
         return this->_nxt;
       } else {
-        assert(false);
+        ceph_abort("impossible path");
       }
     }
     void wrap_nxt() {
@@ -1818,7 +1817,7 @@ struct staged {
         appender->wrap_nxt(p_append);
         ++_index;
       } else {
-        assert(false);
+        ceph_abort("impossible path");
       }
     }
    private:
@@ -1934,7 +1933,7 @@ struct staged {
         }
         return false;
       } else {
-        assert(false && "impossible path");
+        ceph_abort("impossible path");
       }
     }
   }
index f0a522344f5a38aa116c7f716938f71af499cb79..e7c9826deaf579548e28524ff7f3cbb0a7ce374f 100644 (file)
@@ -88,7 +88,7 @@ struct MatchHistory {
     } else if (*match == MatchKindCMP::PO) {
       return os << "PO";
     } else {
-      assert(false && "impossble path");
+      ceph_abort("impossble path");
     }
   }
 
@@ -283,7 +283,7 @@ const staged_position_t<STAGE>& cast_down(const search_position_t& pos) {
 #endif
     return pos.nxt.nxt;
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 }
 
@@ -305,7 +305,7 @@ staged_position_t<STAGE>& cast_down_fill_0(search_position_t& pos) {
     pos.nxt.index = 0;
     return pos.nxt.nxt;
   } else {
-    assert(false && "impossible path");
+    ceph_abort("impossible path");
   }
 }
 
@@ -321,7 +321,7 @@ search_position_t normalize(staged_position_t<STAGE>&& pos) {
   } else if (STAGE == STAGE_RIGHT) {
     return {0u, {0u, std::move(pos)}};
   } else {
-    assert(false);
+    ceph_abort("impossible path");
   }
 }
 
index 04540d3db0ebe4e581232705fb10ff22a244ed41..3fc805373c7c3a1badf0737dc2e97d79af6ccbf2 100644 (file)
@@ -82,7 +82,7 @@ class RootNodeTrackerIsolated final : public RootNodeTracker {
     tracked_supers[&t] = &super;
   }
   void do_untrack_super(Transaction& t, Super& super) override {
-    auto removed = tracked_supers.erase(&t);
+    [[maybe_unused]] auto removed = tracked_supers.erase(&t);
     assert(removed);
   }
   ::Ref<Node> get_root(Transaction& t) const override;
index 29341720689c2963ca37ad081ddce0aa89d6163f..e782192ab40bdfb71338573086ed74a90143cc8f 100644 (file)
@@ -55,7 +55,7 @@ namespace {
 
     auto sg = snap_gen_t::from_key<KeyT::HOBJ>(key_hobj);
     p_fill -= sizeof(snap_gen_t);
-    assert(p_fill == (char*)p_mem);
+    ceph_assert(p_fill == (char*)p_mem);
     std::memcpy(p_fill, &sg, sizeof(snap_gen_t));
     key_view.set(*reinterpret_cast<const snap_gen_t*>(p_fill));
 
@@ -196,9 +196,9 @@ TEST_F(b_dummy_tree_test_t, 3_random_insert_leaf_node)
     auto key_s = make_ghobj(0, 0, 0, "ns", "oid", 0, 0);
     auto key_e = make_ghobj(
         std::numeric_limits<shard_t>::max(), 0, 0, "ns", "oid", 0, 0);
-    assert(tree.find(t, key_s).unsafe_get0().is_end());
-    assert(tree.begin(t).unsafe_get0().is_end());
-    assert(tree.last(t).unsafe_get0().is_end());
+    ASSERT_TRUE(tree.find(t, key_s).unsafe_get0().is_end());
+    ASSERT_TRUE(tree.begin(t).unsafe_get0().is_end());
+    ASSERT_TRUE(tree.last(t).unsafe_get0().is_end());
 
     std::vector<std::tuple<ghobject_t,
                            const onode_t*,
@@ -206,12 +206,12 @@ TEST_F(b_dummy_tree_test_t, 3_random_insert_leaf_node)
     auto f_validate_insert_new = [this, &insert_history] (
         const ghobject_t& key, const onode_t& value) {
       auto [cursor, success] = tree.insert(t, key, value).unsafe_get0();
-      assert(success == true);
+      ceph_assert(success);
       insert_history.emplace_back(key, &value, cursor);
       Onodes::validate_cursor(cursor, key, value);
       auto cursor_ = tree.lower_bound(t, key).unsafe_get0();
-      assert(cursor_.get_ghobj() == key);
-      assert(cursor_.value() == cursor.value());
+      ceph_assert(cursor_.get_ghobj() == key);
+      ceph_assert(cursor_.value() == cursor.value());
       return cursor.value();
     };
     auto onodes = Onodes(15);
@@ -224,10 +224,10 @@ TEST_F(b_dummy_tree_test_t, 3_random_insert_leaf_node)
     // validate lookup
     {
       auto cursor1_s = tree.lower_bound(t, key_s).unsafe_get0();
-      assert(cursor1_s.get_ghobj() == key1);
-      assert(cursor1_s.value() == p_value1);
+      ASSERT_EQ(cursor1_s.get_ghobj(), key1);
+      ASSERT_EQ(cursor1_s.value(), p_value1);
       auto cursor1_e = tree.lower_bound(t, key_e).unsafe_get0();
-      assert(cursor1_e.is_end());
+      ASSERT_TRUE(cursor1_e.is_end());
     }
 
     // insert the same key1 with a different onode
@@ -235,7 +235,7 @@ TEST_F(b_dummy_tree_test_t, 3_random_insert_leaf_node)
       auto& onode1_dup = onodes.pick();
       auto [cursor1_dup, ret1_dup] = tree.insert(
           t, key1, onode1_dup).unsafe_get0();
-      assert(ret1_dup == false);
+      ASSERT_FALSE(ret1_dup);
       Onodes::validate_cursor(cursor1_dup, key1, onode1);
     }
 
@@ -315,8 +315,8 @@ TEST_F(b_dummy_tree_test_t, 3_random_insert_leaf_node)
     std::for_each(kvs.begin(), kvs.end(), [&f_validate_insert_new] (auto& kv) {
       f_validate_insert_new(kv.first, *kv.second);
     });
-    assert(tree.height(t).unsafe_get0() == 1);
-    assert(!tree.test_is_clean());
+    ASSERT_EQ(tree.height(t).unsafe_get0(), 1);
+    ASSERT_FALSE(tree.test_is_clean());
 
     for (auto& [k, v, c] : insert_history) {
       // validate values in tree keep intact
@@ -346,7 +346,7 @@ static std::set<ghobject_t> build_key_set(
     std::pair<unsigned, unsigned> range_0,
     std::string padding = "",
     bool is_internal = false) {
-  assert(range_1.second <= 10);
+  ceph_assert(range_1.second <= 10);
   std::set<ghobject_t> ret;
   ghobject_t key;
   for (unsigned i = range_2.first; i < range_2.second; ++i) {
@@ -391,8 +391,8 @@ class TestTree {
         auto& value = onodes.create(onode_size);
         insert_tree(key, value).get0();
       }
-      assert(tree.height(t).unsafe_get0() == 1);
-      assert(!tree.test_is_clean());
+      ASSERT_EQ(tree.height(t).unsafe_get0(), 1);
+      ASSERT_FALSE(tree.test_is_clean());
       //std::ostringstream oss;
       //tree.dump(t, oss);
       //logger().info("\n{}\n", oss.str());
@@ -405,7 +405,7 @@ class TestTree {
       tree.mkfs(t).unsafe_get0();
       //logger().info("\n---------------------------------------------"
       //              "\nbefore leaf node split:\n");
-      assert(keys.size() == values.size());
+      ASSERT_EQ(keys.size(), values.size());
       auto key_iter = keys.begin();
       auto value_iter = values.begin();
       while (key_iter != keys.end()) {
@@ -413,8 +413,8 @@ class TestTree {
         ++key_iter;
         ++value_iter;
       }
-      assert(tree.height(t).unsafe_get0() == 1);
-      assert(!tree.test_is_clean());
+      ASSERT_EQ(tree.height(t).unsafe_get0(), 1);
+      ASSERT_FALSE(tree.test_is_clean());
       //std::ostringstream oss;
       //tree.dump(t, oss);
       //logger().info("\n{}\n", oss.str());
@@ -431,13 +431,13 @@ class TestTree {
 
       logger().info("insert {}:", key_hobj_t(key));
       auto [cursor, success] = tree_clone.insert(t_clone, key, value).unsafe_get0();
-      assert(success == true);
+      ASSERT_TRUE(success);
       Onodes::validate_cursor(cursor, key, value);
 
       std::ostringstream oss;
       tree_clone.dump(t_clone, oss);
-      logger().info("dump new root:\n{}\n", oss.str());
-      assert(tree_clone.height(t_clone).unsafe_get0() == 2);
+      logger().info("dump new root:\n{}", oss.str());
+      EXPECT_EQ(tree_clone.height(t_clone).unsafe_get0(), 2);
 
       for (auto& [k, v, c] : insert_history) {
         auto result = tree_clone.lower_bound(t_clone, k).unsafe_get0();
@@ -445,7 +445,7 @@ class TestTree {
       }
       auto result = tree_clone.lower_bound(t_clone, key).unsafe_get0();
       Onodes::validate_cursor(result, key, value);
-      assert(last_split.match(expected));
+      EXPECT_TRUE(last_split.match(expected));
     });
   }
 
@@ -457,7 +457,7 @@ class TestTree {
   seastar::future<> insert_tree(const ghobject_t& key, const onode_t& value) {
     return seastar::async([this, &key, &value] {
       auto [cursor, success] = tree.insert(t, key, value).unsafe_get0();
-      assert(success == true);
+      ASSERT_TRUE(success);
       Onodes::validate_cursor(cursor, key, value);
       insert_history.emplace_back(key, &value, cursor);
     });
@@ -608,13 +608,13 @@ TEST_F(c_dummy_test_t, 4_split_leaf_node)
                     "\nsplit at [0, 0, 0]; insert to left front at stage 2, 1, 0\n");
       test.split(make_ghobj(1, 1, 1, "ns3", "oid3", 3, 3), onode,
                  {2u, 2u, true, InsertType::BEGIN}).get0();
-      assert(last_split.match_split_pos({0, {0, {0}}}));
+      EXPECT_TRUE(last_split.match_split_pos({0, {0, {0}}}));
       test.split(make_ghobj(2, 2, 2, "ns1", "oid1", 3, 3), onode,
                  {2u, 1u, true, InsertType::BEGIN}).get0();
-      assert(last_split.match_split_pos({0, {0, {0}}}));
+      EXPECT_TRUE(last_split.match_split_pos({0, {0, {0}}}));
       test.split(make_ghobj(2, 2, 2, "ns2", "oid2", 1, 1), onode,
                  {2u, 0u, true, InsertType::BEGIN}).get0();
-      assert(last_split.match_split_pos({0, {0, {0}}}));
+      EXPECT_TRUE(last_split.match_split_pos({0, {0, {0}}}));
     }
 
     {
@@ -631,13 +631,13 @@ TEST_F(c_dummy_test_t, 4_split_leaf_node)
                     "\nsplit at [END, END, END]; insert to right at stage 0, 1, 2\n");
       test.split(make_ghobj(3, 3, 3, "ns3", "oid3", 4, 4), onode,
                  {0u, 0u, false, InsertType::BEGIN}).get0();
-      assert(last_split.match_split_pos({1, {0, {1}}}));
+      EXPECT_TRUE(last_split.match_split_pos({1, {0, {1}}}));
       test.split(make_ghobj(3, 3, 3, "ns4", "oid4", 3, 3), onode,
                  {1u, 1u, false, InsertType::BEGIN}).get0();
-      assert(last_split.match_split_pos({1, {1, {0}}}));
+      EXPECT_TRUE(last_split.match_split_pos({1, {1, {0}}}));
       test.split(make_ghobj(4, 4, 4, "ns3", "oid3", 3, 3), onode,
                  {2u, 2u, false, InsertType::BEGIN}).get0();
-      assert(last_split.match_split_pos({2, {0, {0}}}));
+      EXPECT_TRUE(last_split.match_split_pos({2, {0, {0}}}));
     }
   });
 }
@@ -674,27 +674,27 @@ class DummyChildPool {
     level_t level() const override { return 0u; }
     key_view_t get_largest_key_view() const override { return key_view; }
     void prepare_mutate(context_t) override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     bool is_empty() const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     node_offset_t free_size() const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     key_view_t get_key_view(const search_position_t&) const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     void next_position(search_position_t&) const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     node_stats_t get_stats() const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     std::ostream& dump(std::ostream&) const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     std::ostream& dump_brief(std::ostream&) const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     void validate_layout() const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     void test_copy_to(NodeExtentMutable&) const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     void test_set_tail(NodeExtentMutable&) override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
 
    private:
     std::set<ghobject_t> keys;
@@ -711,8 +711,8 @@ class DummyChildPool {
 
     node_future<> populate_split(
         context_t c, std::set<Ref<DummyChild>>& splitable_nodes) {
-      assert(can_split());
-      assert(splitable_nodes.find(this) != splitable_nodes.end());
+      ceph_assert(can_split());
+      ceph_assert(splitable_nodes.find(this) != splitable_nodes.end());
 
       size_t index;
       const auto& keys = impl->get_keys();
@@ -742,9 +742,9 @@ class DummyChildPool {
         context_t c, const ghobject_t& insert_key,
         std::set<Ref<DummyChild>>& splitable_nodes) {
       const auto& keys = impl->get_keys();
-      assert(keys.size() == 1);
+      ceph_assert(keys.size() == 1);
       auto& key = *keys.begin();
-      assert(insert_key < key);
+      ceph_assert(insert_key < key);
 
       std::set<ghobject_t> new_keys;
       new_keys.insert(insert_key);
@@ -754,12 +754,12 @@ class DummyChildPool {
       splitable_nodes.clear();
       splitable_nodes.insert(this);
       auto fut = populate_split(c, splitable_nodes);
-      assert(!splitable_nodes.size());
+      ceph_assert(splitable_nodes.size() == 0);
       return fut;
     }
 
     bool match_pos(const search_position_t& pos) const {
-      assert(!is_root());
+      ceph_assert(!is_root());
       return pos == parent_info().position;
     }
 
@@ -792,25 +792,25 @@ class DummyChildPool {
    protected:
     node_future<> test_clone_non_root(
         context_t, Ref<InternalNode> new_parent) const override {
-      assert(!is_root());
+      ceph_assert(!is_root());
       auto p_pool_clone = pool.pool_clone_in_progress;
-      assert(p_pool_clone);
+      ceph_assert(p_pool_clone != nullptr);
       auto clone = create(
           impl->get_keys(), impl->is_level_tail(), impl->laddr(), *p_pool_clone);
       clone->as_child(parent_info().position, new_parent);
       return node_ertr::now();
     }
     node_future<Ref<tree_cursor_t>> lookup_smallest(context_t) override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     node_future<Ref<tree_cursor_t>> lookup_largest(context_t) override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     node_future<> test_clone_root(context_t, RootNodeTracker&) const override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     node_future<search_result_t> lower_bound_tracked(
         context_t, const key_hobj_t&, MatchHistory&) override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
     node_future<> do_get_tree_stats(context_t, tree_stats_t&) override {
-      assert(false && "impossible path"); }
+      ceph_abort("impossible path"); }
 
    private:
     DummyChild(DummyChildImpl* impl, DummyChildImpl::URef&& ref, DummyChildPool& pool)
@@ -863,7 +863,7 @@ class DummyChildPool {
       //logger().info("\n{}\n", oss.str());
       return p_btree->height(t());
     }).safe_then([](auto height) {
-      assert(height == 2);
+      ceph_assert(height == 2);
     });
   }
 
@@ -884,29 +884,29 @@ class DummyChildPool {
         pool_clone.get_context(), key, pool_clone.splitable_nodes).unsafe_get0();
       std::ostringstream oss;
       pool_clone.p_btree->dump(pool_clone.t(), oss);
-      logger().info("dump new root:\n{}\n", oss.str());
-      assert(pool_clone.p_btree->height(pool_clone.t()).unsafe_get0() == 3);
-      assert(last_split.match(expected));
+      logger().info("dump new root:\n{}", oss.str());
+      EXPECT_EQ(pool_clone.p_btree->height(pool_clone.t()).unsafe_get0(), 3);
+      EXPECT_TRUE(last_split.match(expected));
     });
   }
 
  private:
   void reset() {
-    assert(!pool_clone_in_progress);
+    ceph_assert(pool_clone_in_progress == nullptr);
     if (tracked_children.size()) {
-      assert(!p_btree->test_is_clean());
+      ceph_assert(!p_btree->test_is_clean());
       tracked_children.clear();
-      assert(p_btree->test_is_clean());
+      ceph_assert(p_btree->test_is_clean());
       p_nm = nullptr;
       p_btree.reset();
     } else {
-      assert(!p_btree);
+      ceph_assert(!p_btree.has_value());
     }
     splitable_nodes.clear();
   }
 
   void track_node(Ref<DummyChild> node) {
-    assert(tracked_children.find(node) == tracked_children.end());
+    ceph_assert(tracked_children.find(node) == tracked_children.end());
     tracked_children.insert(node);
   }
 
@@ -915,12 +915,12 @@ class DummyChildPool {
         tracked_children.begin(), tracked_children.end(), [&pos](auto& child) {
       return child->match_pos(pos);
     });
-    assert(iter != tracked_children.end());
+    ceph_assert(iter != tracked_children.end());
     return *iter;
   }
 
   context_t get_context() {
-    assert(p_nm != nullptr);
+    ceph_assert(p_nm != nullptr);
     return {*p_nm, t()};
   }