diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2021-09-24 09:12:19 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2021-09-24 09:12:19 +0000 |
commit | b98977ac567d60c239cf34ad5c48afc7beed6994 (patch) | |
tree | f3b8c612c80f23a4ef7f1d7227d1d098b65c5414 /storage/src | |
parent | 9dabf1ce317325a334fd5f6aac531456acea17c4 (diff) |
Add high-level test that maintenance is inhibited during pending state transitions
Maintenance inhibition is already present, but it happens at a much lower level.
Add a high-level test to ensure that the wiring works as expected.
Diffstat (limited to 'storage/src')
-rw-r--r-- | storage/src/tests/distributor/distributor_stripe_test.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/storage/src/tests/distributor/distributor_stripe_test.cpp b/storage/src/tests/distributor/distributor_stripe_test.cpp index 418b224eb25..7fdc2578545 100644 --- a/storage/src/tests/distributor/distributor_stripe_test.cpp +++ b/storage/src/tests/distributor/distributor_stripe_test.cpp @@ -230,6 +230,25 @@ TEST_F(DistributorStripeTest, operations_generated_and_started_without_duplicate ASSERT_EQ(6, _sender.commands().size()); } +TEST_F(DistributorStripeTest, maintenance_scheduling_inhibited_if_cluster_state_is_pending) +{ + setup_stripe(Redundancy(2), NodeCount(4), "storage:3 distributor:1"); + simulate_set_pending_cluster_state("storage:4 distributor:1"); + + _sender.commands().clear(); // Remove pending bucket info requests + + tickDistributorNTimes(1); + EXPECT_FALSE(stripe_is_in_recovery_mode()); + + for (uint32_t i = 0; i < 6; ++i) { + addNodesToBucketDB(document::BucketId(16, i), "0=2"); // Needs activation, merging + } + tickDistributorNTimes(10); + + // No ops should have been actually generated + ASSERT_EQ(0, _sender.commands().size()); +} + TEST_F(DistributorStripeTest, recovery_mode_on_cluster_state_change) { setup_stripe(Redundancy(1), NodeCount(2), |