]> 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, 14 Mar 2024 17:12:48 +0000 (20:12 +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 7d02b1551e0f16d41a3a8b3b08e1affadf27426d..2033989aa60d733be5f6ca9ca907bda603bca04c 100644 (file)
@@ -16249,7 +16249,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 a923ede5c12c7e504c43e6b9b5ad6c481e05b55e..75fc4835638547c2d82053a78248e18307c14007 100644 (file)
@@ -7097,6 +7097,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();