]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore: add debugging on shutdown for cache, pin contents
authorSamuel Just <sjust@redhat.com>
Sat, 8 May 2021 01:55:09 +0000 (18:55 -0700)
committerSamuel Just <sjust@redhat.com>
Wed, 12 May 2021 02:38:18 +0000 (19:38 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc
src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h
src/crimson/os/seastore/lba_manager/btree/btree_range_pin.h
src/crimson/os/seastore/transaction_manager.cc

index cae26ba3f00106fafc240447fefc5df143ca8e76..139dc104211aa7ade2f42dd45c58595f23ce0dc9 100644 (file)
@@ -48,6 +48,16 @@ Cache::retire_extent_ret Cache::retire_extent(
   }
 }
 
+void Cache::dump_contents()
+{
+  LOG_PREFIX(Cache::dump_contents);
+  DEBUG("enter");
+  for (auto &&i: extents) {
+    DEBUG("live {}", i);
+  }
+  DEBUG("exit");
+}
+
 void Cache::add_extent(CachedExtentRef ref)
 {
   LOG_PREFIX(Cache::add_extent);
index d8fc5bed62201ee686a057fccd631732478a5aef..0c10f2c4e86e5005b2a9417507bbc635d285b065 100644 (file)
@@ -540,6 +540,9 @@ public:
     }
   }
 
+  /// Dump live extents
+  void dump_contents();
+
 private:
   SegmentManager &segment_manager; ///< ref to segment_manager
   RootBlockRef root;               ///< ref to current root
index bbbf0a90f1c896939ef2299ff6ecb9cbbb017e17..c9b72df4df8ddf78ac22e65c7ded746715c77f86 100644 (file)
@@ -637,4 +637,11 @@ BtreeLBAManager::update_internal_mapping(
   });
 }
 
+BtreeLBAManager::~BtreeLBAManager()
+{
+  pin_set.scan([](auto &i) {
+    logger().error("Found {} {} has_ref={}", i, i.get_extent(), i.has_ref());
+  });
+}
+
 }
index 34fa328095736c357744875c85fa63bccb0414f3..a03b24233410886a70e348c7398627bdf0d3eb1f 100644 (file)
@@ -119,6 +119,7 @@ public:
     bpin->parent = nullptr;
   }
 
+  ~BtreeLBAManager();
 private:
   SegmentManager &segment_manager;
   Cache &cache;
index d4529ae48ec3950d21f1360eb899d83d1cf3309d..08e3979c020ec120f9903d5d9456a570dffd75f7 100644 (file)
@@ -117,6 +117,15 @@ public:
     extent = nextent;
   }
 
+  CachedExtent &get_extent() {
+    assert(extent);
+    return *extent;
+  }
+
+  bool has_ref() {
+    return !!ref;
+  }
+
   void take_pin(btree_range_pin_t &other);
 
   friend bool operator<(
@@ -212,6 +221,13 @@ public:
   void retire(btree_range_pin_t &pin);
   void check_parent(btree_range_pin_t &pin);
 
+  template <typename F>
+  void scan(F &&f) {
+    for (auto &i : pins) {
+      std::invoke(f, i);
+    }
+  }
+
   ~btree_pin_set_t() {
     ceph_assert(pins.empty());
   }
index 8dd77164f638b08cd65a687414783c3c68e8ad72..85a1ef76486b2734379a3c8aba603478f09cf042 100644 (file)
@@ -107,11 +107,17 @@ TransactionManager::mount_ertr::future<> TransactionManager::mount()
 }
 
 TransactionManager::close_ertr::future<> TransactionManager::close() {
+  LOG_PREFIX(TransactionManager::close);
+  DEBUG("enter");
   return segment_cleaner->stop(
   ).then([this] {
     return cache->close();
   }).safe_then([this] {
+    cache->dump_contents();
     return journal->close();
+  }).safe_then([this, FNAME] {
+    DEBUG("completed");
+    return seastar::now();
   });
 }