From: Igor Fedotov Date: Tue, 19 Mar 2019 18:23:31 +0000 (+0300) Subject: luminous: test/store_test: workaround for failing BlobReuseOnOverwrite UT X-Git-Tag: v12.2.13~167^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4a067e4f7cd66f6e12c617aad31e3a6ee5583f17;p=ceph.git luminous: test/store_test: workaround for failing BlobReuseOnOverwrite UT Workarounds: https://tracker.ceph.com/issues/38795 Signed-off-by: Igor Fedotov (cherry picked from commit 08b6038f99e3de783518ceea08ac5d2ddc7e1697) --- diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 326c9785d03..9f8e66ed2c6 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -5949,10 +5949,20 @@ TEST_P(StoreTestSpecificAUSize, BlobReuseOnOverwrite) { return; size_t block_size = 4096; - StartDeferred(block_size); + g_conf->set_val("bluestore_max_blob_size", "65536"); + // need to tune cache autotune interval as lack of cache balancing + // triggers excessive cache trimming after fsck + // See https://tracker.ceph.com/issues/38795 + g_conf->set_val("bluestore_cache_autotune_interval", "1"); g_conf->apply_changes(NULL); + StartDeferred(block_size); + + // wait 2xbluestore_cache_autotune_interval to make sure cache has been + // rebalanced + sleep(2); + ObjectStore::Sequencer osr("test"); int r; coll_t cid; @@ -6115,6 +6125,7 @@ TEST_P(StoreTestSpecificAUSize, BlobReuseOnOverwrite) { ASSERT_EQ(r, 0); } g_conf->set_val("bluestore_max_blob_size", "0"); + g_conf->set_val("bluestore_cache_autotune_interval", "5"); } @@ -6124,11 +6135,19 @@ TEST_P(StoreTestSpecificAUSize, BlobReuseOnOverwriteReverse) { return; size_t block_size = 4096; - StartDeferred(block_size); g_conf->set_val("bluestore_max_blob_size", "65536"); - + // need to tune cache autotune interval as lack of cache balancing + // triggers excessive cache trimming after fsck + // See https://tracker.ceph.com/issues/38795 + g_conf->set_val("bluestore_cache_autotune_interval", "1"); g_conf->apply_changes(NULL); + StartDeferred(block_size); + + // wait 2xbluestore_cache_autotune_interval to make sure cache has been + // rebalanced + sleep(2); + ObjectStore::Sequencer osr("test"); int r; coll_t cid; @@ -6298,6 +6317,7 @@ TEST_P(StoreTestSpecificAUSize, BlobReuseOnOverwriteReverse) { ASSERT_EQ(r, 0); } g_conf->set_val("bluestore_max_blob_size", "0"); + g_conf->set_val("bluestore_cache_autotune_interval", "5"); } TEST_P(StoreTestSpecificAUSize, BlobReuseOnSmallOverwrite) { @@ -6306,10 +6326,19 @@ TEST_P(StoreTestSpecificAUSize, BlobReuseOnSmallOverwrite) { return; size_t block_size = 4096; - StartDeferred(block_size); g_conf->set_val("bluestore_max_blob_size", "65536"); + // need to tune cache autotune interval as lack of cache balancing + // triggers excessive cache trimming after fsck + // See https://tracker.ceph.com/issues/38795 + g_conf->set_val("bluestore_cache_autotune_interval", "1"); g_conf->apply_changes(NULL); + StartDeferred(block_size); + + // wait 2xbluestore_cache_autotune_interval to make sure cache has been + // rebalanced + sleep(2); + ObjectStore::Sequencer osr("test"); int r; coll_t cid; @@ -6372,6 +6401,7 @@ TEST_P(StoreTestSpecificAUSize, BlobReuseOnSmallOverwrite) { ASSERT_EQ(r, 0); } g_conf->set_val("bluestore_max_blob_size", "0"); + g_conf->set_val("bluestore_cache_autotune_interval", "5"); } // The test case to reproduce an issue when write happens