]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
test/store_test: fix DeferredWrite test when prefer_deferred_size=0
authorIgor Fedotov <igor.fedotov@croit.io>
Thu, 15 Feb 2024 10:34:32 +0000 (13:34 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Thu, 15 Feb 2024 10:34:32 +0000 (13:34 +0300)
Fixes: https://tracker.ceph.com/issues/64443
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
src/os/bluestore/BlueStore.cc
src/test/objectstore/store_test.cc

index 29aff834fa460459bc61d26000cedede4afb19c8..876f766f76426b510427f9bc1256ce724f9d341b 100644 (file)
@@ -16252,7 +16252,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 61ac86a8feeba15aede71ef1db524dabafb8da9c..14c6454d5cf9541f6567b4ce3120a09fcc802436 100644 (file)
@@ -7030,6 +7030,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();