]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/store_test: fix DeferredWrite test when prefer_deferred_size=0 56199/head
authorIgor Fedotov <igor.fedotov@croit.io>
Thu, 15 Feb 2024 10:34:32 +0000 (13:34 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Thu, 14 Mar 2024 17:02:21 +0000 (20:02 +0300)
Fixes: https://tracker.ceph.com/issues/64443
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit ac4a48c4be1791a32cfd2cf3cf5af51eee581d21)

src/os/bluestore/BlueStore.cc
src/test/objectstore/store_test.cc

index aa14d0204f7aaad4f52b0f855a33def65b2b56eb..8985f87c407aacf0dec7cd720d802058e8f8e010 100644 (file)
@@ -15778,7 +15778,9 @@ int BlueStore::_do_alloc_write(
     if (!g_conf()->bluestore_debug_omit_block_device_write) {
       if (data_size < prefer_deferred_size_snapshot) {
        dout(20) << __func__ << " deferring 0x" << std::hex
-                << l->length() << std::dec << " write via deferred" << dendl;
+                << l->length()  << " write via deferred, pds=0x"
+                 << prefer_deferred_size_snapshot
+                 << std::dec<< dendl;
        bluestore_deferred_op_t *op = _get_deferred_op(txc, l->length());
        op->op = bluestore_deferred_op_t::OP_WRITE;
        int r = wi.b->get_blob().map(
index 9edfebd6b9916d41040487bb5d620dcdec00e75b..445fdc3ff86719ff2385affd35478d08d75a5633 100644 (file)
@@ -6912,6 +6912,15 @@ TEST_P(DeferredWriteTest, NewData) {
   SetVal(g_conf(), "bluestore_min_alloc_size", stringify(t.min_alloc_size).c_str());
   SetVal(g_conf(), "bluestore_max_blob_size", stringify(t.max_blob_size).c_str());
   SetVal(g_conf(), "bluestore_prefer_deferred_size", stringify(t.prefer_deferred_size).c_str());
+  // bluestore_prefer_deferred_size set to 0 is a special case
+  // when hdd-/ssd-specific settings applied.
+  // Need to adjust them as well if we want to have no deferred ops at all
+  // Fixes: https://tracker.ceph.com/issues/64443
+  //
+  if (0 == t.prefer_deferred_size) {
+    SetVal(g_conf(), "bluestore_prefer_deferred_size_hdd", "0");
+    SetVal(g_conf(), "bluestore_prefer_deferred_size_ssd", "0");
+  }
   g_conf().apply_changes(nullptr);
   DeferredSetup();