From 85f03d314e7ea5a3ed22fdd3eaca1349e5c23710 Mon Sep 17 00:00:00 2001 From: Adam Kupczyk Date: Fri, 17 Feb 2023 14:51:55 +0000 Subject: [PATCH] os/store_test: Retune tests to current code After introduction of lazy statfs updates and mechanism to store them at exit, some tests required tune-up. Signed-off-by: Adam Kupczyk --- src/os/bluestore/BlueStore.cc | 3 +++ src/test/objectstore/store_test.cc | 11 ++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 4fefc81c69fe5..84fa6179208d7 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -10246,6 +10246,9 @@ void BlueStore::inject_global_statfs(const store_statfs_t& new_statfs) v.encode(bl); t->set(PREFIX_STAT, BLUESTORE_GLOBAL_STATFS_KEY, bl); db->submit_transaction_sync(t); + // must set these; are needed at _close_db() statfs persisting + per_pool_stat_collection = false; + vstatfs = new_statfs; } void BlueStore::inject_misreference(coll_t cid1, ghobject_t oid1, diff --git a/src/test/objectstore/store_test.cc b/src/test/objectstore/store_test.cc index 32ddbfd9abd63..3b2820d8466ac 100644 --- a/src/test/objectstore/store_test.cc +++ b/src/test/objectstore/store_test.cc @@ -9339,9 +9339,10 @@ TEST_P(StoreTestSpecificAUSize, BluestoreRepairTest) { //////////// verify invalid statfs /////////// cerr << "fix invalid statfs" << std::endl; - SetVal(g_conf(), "bluestore_fsck_error_on_no_per_pool_stats", "true"); + SetVal(g_conf(), "bluestore_fsck_error_on_no_per_pool_stats", "false"); + // disable allocation recovery - it will fix statfs too SetVal(g_conf(), - "bluestore_debug_inject_allocation_from_file_failure", "1"); + "bluestore_debug_inject_allocation_from_file_failure", "0"); store_statfs_t statfs0; store_statfs_t statfs; bstore->mount(); @@ -9351,7 +9352,7 @@ TEST_P(StoreTestSpecificAUSize, BluestoreRepairTest) { statfs.data_stored += 0x10000; ASSERT_FALSE(statfs0 == statfs); // this enforces global stats usage - bstore->inject_statfs("bluestore_statfs", statfs); + bstore->inject_global_statfs(statfs); bstore->umount(); ASSERT_GE(bstore->fsck(false), 1); // global stats mismatch might omitted when @@ -9375,10 +9376,10 @@ TEST_P(StoreTestSpecificAUSize, BluestoreRepairTest) { statfs.data_stored += 0x20000; ASSERT_FALSE(statfs0 == statfs); // this enforces global stats usage - bstore->inject_statfs("bluestore_statfs", statfs); + bstore->inject_global_statfs(statfs); bstore->umount(); - ASSERT_EQ(bstore->fsck(false), 2); + ASSERT_EQ(bstore->fsck(false), 1); ASSERT_EQ(bstore->repair(false), 0); ASSERT_EQ(bstore->fsck(false), 0); ASSERT_EQ(bstore->mount(), 0); -- 2.39.5