]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: test _extend_log sequence advance
authorPere Diaz Bou <pdiabou@redhat.com>
Fri, 29 Sep 2023 11:16:42 +0000 (13:16 +0200)
committerDavid Galloway <david.galloway@ibm.com>
Tue, 20 May 2025 16:48:58 +0000 (12:48 -0400)
Signed-off-by: Pere Diaz Bou <pdiabou@redhat.com>
(cherry picked from commit e785ef23339eba41bf786a68bba845f1916feb61)
(cherry picked from commit a71c33869d174a67c6c9eedca4997442a48f3a6c)

src/test/objectstore/test_bluefs.cc

index 7584650a7070b2896e651ef56df6e8e4b4b8f9b6..ef4b97d73143094324086353455581becce6dac6 100644 (file)
@@ -1558,6 +1558,30 @@ TEST(BlueFS, test_log_runway_3) {
   }
 }
 
+TEST(BlueFS, test_log_runway_advance_seq) {
+  uint64_t max_log_runway = 65536;
+  ConfSaver conf(g_ceph_context->_conf);
+  conf.SetVal("bluefs_alloc_size", "4096");
+  conf.SetVal("bluefs_shared_alloc_size", "4096");
+  conf.SetVal("bluefs_compact_log_sync", "false");
+  conf.SetVal("bluefs_min_log_runway", "32768");
+  conf.SetVal("bluefs_max_log_runway", std::to_string(max_log_runway).c_str());
+  conf.ApplyChanges();
+
+  uint64_t size = 1048576 * 128;
+  TempBdev bdev{size};
+  BlueFS fs(g_ceph_context);
+  ASSERT_EQ(0, fs.add_block_device(BlueFS::BDEV_DB, bdev.path, false, 0));
+  uuid_d fsid;
+  ASSERT_EQ(0, fs.mkfs(fsid, { BlueFS::BDEV_DB, false, false }));
+  ASSERT_EQ(0, fs.mount());
+  ASSERT_EQ(0, fs.maybe_verify_layout({ BlueFS::BDEV_DB, false, false }));
+
+  std::string longdir(max_log_runway*2, 'A');
+  ASSERT_EQ(fs.mkdir(longdir), 0);
+  fs.compact_log();
+}
+
 int main(int argc, char **argv) {
   auto args = argv_to_vec(argc, argv);
   map<string,string> defaults = {