mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-25 01:19:02 +00:00
[TEST] stop disruption before we check for deleted shards
The shard can potentially not be deleted if the obsever that checks for the shard STARTED is not registered because the registering is delayed by the disruption. If the sum of delays is more than 10s then the wait for shard deletion will time out.
This commit is contained in:
parent
3bda78e43b
commit
2edff1bc4a
@ -112,8 +112,9 @@ public class IndicesStoreIntegrationTests extends ElasticsearchIntegrationTest {
|
||||
assertThat(Files.exists(indexDirectory(node_3, "test")), equalTo(false));
|
||||
|
||||
logger.info("--> move shard from node_1 to node_3, and wait for relocation to finish");
|
||||
SlowClusterStateProcessing disruption = null;
|
||||
if (randomBoolean()) { // sometimes add cluster-state delay to trigger observers in IndicesStore.ShardActiveRequestHandler
|
||||
final SlowClusterStateProcessing disruption = new SlowClusterStateProcessing(node_3, getRandom(), 0, 0, 1000, 2000);
|
||||
disruption = new SlowClusterStateProcessing(node_3, getRandom(), 0, 0, 1000, 2000);
|
||||
internalCluster().setDisruptionScheme(disruption);
|
||||
disruption.startDisrupting();
|
||||
}
|
||||
@ -123,6 +124,12 @@ public class IndicesStoreIntegrationTests extends ElasticsearchIntegrationTest {
|
||||
.setWaitForRelocatingShards(0)
|
||||
.get();
|
||||
assertThat(clusterHealth.isTimedOut(), equalTo(false));
|
||||
if (disruption != null) {
|
||||
// we must stop the disruption here, else the delayed cluster state processing on the disrupted node
|
||||
// can potentially delay registering the observer in IndicesStore.ShardActiveRequestHandler.messageReceived()
|
||||
// and therefore sending the response for the shard active request for more than 10s
|
||||
disruption.stopDisrupting();
|
||||
}
|
||||
|
||||
assertThat(waitForShardDeletion(node_1, "test", 0), equalTo(false));
|
||||
assertThat(waitForIndexDeletion(node_1, "test"), equalTo(false));
|
||||
|
Loading…
x
Reference in New Issue
Block a user